方式1:简单的jar包对象载入
最普通的方式为直接调用,如下所示
public class JDBCUTILSdemo {
private JDBCUTILSdemo() {}
private static Connection con;
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/demo?serverTimezone=UTC";
String username = "root";
String password = "123456";
con = DriverManager.getConnection(url, username,password);
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e+"failed connection!");
}
}
public static Connection getConnection() {
return con;
}
这种方式提供的工具类缺点在于里面的参数需要自己进入jdbc的工具包类对象进行修改,比较繁琐
方式2使用properties配置文件
开发中获得的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。通常情况下我们习惯使用properties文件,此文件作如下要求:
1.文件位置:任意,建议src下
2.文件名称:任意,扩展名为properties
3.文件内容:一行一组数据,格式是“key = value”
在加载配置文件时,我们使用JDK提供的工具类ResourceBundle加载properties文件,ResourceBundle提供getBundle()方法用于只提供properties文件即可,之后使用getString(key)通过key获得value的值。
代码写法:
public class JdbcUtils{
private static String driver;
private static String url;
private static String user;
private static String password;
//配置文件只需要加再一次,提供静态代码,当前类被加载到内存执行。
static{
ResourceBundle bundle = ResourceBundle.getBundle(“配置文件名称”);
driver = bundle.getString("配置文件内的对应的key值");
url = bundle.getString("配置文件内的对应的key值");
user = bundle.getString("配置文件内的对应的key值");
password = bundle.getString("配置文件内的对应的key值");
}
}
实现增删改查的一般模板:
conn = JdbcUtils.getConnection();//1.获得连接
st = conn.createStatement(); //2.获得语句执行者
int r = st.executeUpdate("sql语句")//3.执行语句
注意事项:1.增删改等改动数据库的表的操作要使用executeUpdate,而查询操作则使用executeQuery。
2.prepareStatement与createStatement的区别
prepareStatement 提供预编译SQL语句,可以用"?" 来替换需要改变的参数值,类似于正则化 SQL查询语句。
createStatement则不提供预编译SQL,需要实时executeQuery(sqlStr) 来访问数据库。 因此,prepareStatement可以多次使用,提高访问数据库的效率。