java连接mysql数据库

这里我们使用的是mysql数据库所以我们需要引入mysql驱动。右键项目点击properties》》》然后在下面这个界面点击Add External JARs...,把mysql-jdbc驱动连接进来。

181442_cOz8_2851839.png

下面是我写的一个模板代码(供大家参考使用):

 


package com.util.dbmethod;

import java.sql.*;

/**
 * @author yuanmuou
 * @功能:数据库函数集合
 * @要求:需要引入mysql-jdbc驱动
 */
public class Database {
    private static final String user = "root";// 数据库用户名
    private static final String password = "123";// 数据库密码
    private static String dbname = "shop";// 数据库名

    static PreparedStatement prestate=null;
    private static final String driver = "com.mysql.jdbc.Driver";
    private static Connection connect = null;// 数据库连接
    private static final String url = "jdbc:mysql://localhost:3306/" + dbname
            + "?useUnicode=true&characterEncoding=UTF-8";

    static {
        try {
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("错误:加载驱动失败,请检查驱动是否加载。错误信息:" + e.getMessage());
        }
    }

    /**
     * @return boolean 检查是否设置了数据库
     */
    public static boolean isSetDbname() {
        if (dbname == null || dbname.equals(""))
            return false;
        else
            return true;
    }

    /**
     * @return Connection 数据库连接对象
     */
    public static Connection getConnection() {
        if (connect == null) {
            try {
                if (isSetDbname())
                    connect = DriverManager.getConnection(url, user, password);
                else {
                    System.out.println("错误:未设置数据库名");
                }
            } catch (SQLException e) {
                System.out.println("错误:数据库连接失败,请检查数据库名,密码,用户名是否正确");
                e.printStackTrace();
            }
            return connect;
        }
        return connect;
    }
    /** 
     * @param string sql SQL语句
     * @功能 执行SQL查询
     * @返回 结果集
     */
    public static ResultSet doQuery(String sql){
        if((connect=getConnection())==null)
            return null;
        else{
            
            try {
                ResultSet resultset = prestate.executeQuery(sql);
                return resultset;
            } catch (SQLException e) {
                System.out.println("错误:sql语句执行出错");
                e.printStackTrace();
            }
        }
        return null;
    }
        /**
         * 下面是示例程序(可以删除)
         */
    public static void main(String[] args) {
        try {
            Connection con = Database.getConnection();
            if (con != null) {
                System.out.println("数据库连接正常");
            } else {
                System.out.println("数据库连接失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
}

 

遍历结果集实例:

    List<User> users = new ArrayList<>();
    while (rs.next()) {
        User user = new User();
        user.setAvatar(rs.getString("avatar"));
        user.setDescription(rs.getString("description"));
        user.setEmail(rs.getString("email"));
        user.setId(rs.getLong("id"));
        user.setPassword(rs.getString("password"));
        user.setTitle(rs.getString("title"));
        user.setUsername(rs.getString("username"));
        users.add(user);
    }

 

MySQL数据类型Java数据类型ResultSet方法
CHARStringString getString()
VARCHARStringString getString()
LONGVARCHARStringInputStream getAsciiStream()
NUMERICjava.math.BigDecimaljava.math.BigDecimal getBigDecimal()
DECIMALjava.math.BigDecimaljava.math.BigDecimal getBigDecimal()
BITBooleanboolean getBoolean()
TINYINTIntegerbyte getByte()
SMALLINTIntegershort getShort()
INTEGERIntegerint getInt()
BIGINTLonglong getLong()
REALFloatfloat getFloat()
FLOATDoubledouble getDouble()
DOUBLEDoubledouble getDouble()
BINARYbyte[]byte[] getBytes()
VARBINARYbyte[]byte[] getBytes()
LONGVARBINARYbyte[]getBinaryStream()
DATEjava.sql.Datejava.sql.Date getDate()
TIMEJava.sql.Timejava.sql.Time getTime()
TIMESTAMPJava.sql.Timestampjava.sql.Timestamp getTimestamp()

转载于:https://my.oschina.net/yuanmuou/blog/747974

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值