基于对数据库的了解以及自己在平时制作一些小项目对于数据库这方面如果每次连接数据库都要写一段长代码那么这就显得代码重复不简洁,因此为了使代码简洁而且重用性大我们必须写一个工具类来封装这些属性,但是这样还有一个缺点就是下一次你开发项目又要重新写,因此我们需要将我们的工具类打包成JAR格式每次要使用就直接导入即可,这样就十分的方便。
为了使初学者更好的掌握这个方法我吧思路分条整理出来:
1.新建一个JdbcUtil.java类
2.提前写好一个配置文件,通过JdbcUtil.java去读取相关信息
3.在自己的项目下建一个lib文件夹用来存放链接数据库的架包(比如我用的是mysql-connector-java-5.0.8-bin.jar),其次是存放自己到时候写的工具类架包
4.将那个配置文件放在src目录下
以上准备工作好了那就开始我们实施阶段,话不多说请看代码
1.jdbcUtil.java
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* 链接数据库
*/
public class JdbcUtil {
private static String driver;// 驱动地址
private static String url;// ip地址
private static String name;// 账号
private static String password;// 密码
private static JdbcUtil jdbcUtil;// 创建自身类的对象
private JdbcUtil() {
//构造方法私有化,保证外部调用者无法直接创建该类对象
}
//单例模式:该类生成的对象只有一个
//懒汉式,饿汉式
public static JdbcUtil getInstance() {
if(jdbcUtil==null) {
jdbcUtil = new JdbcUtil();
}
return jdbcUtil;
}
static {
try {
// 获取配置文件中的输入流
InputStream is = JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties");
// 根据键值对,解析文件中的字段
// 加载输入流
Properties properties = new Properties();
properties.load(is);
driver = properties.getProperty("driver");// 获取驱动地址
url = properties.getProperty("url");
name = properties.getProperty("name");
password = properties.getProperty("password");
Class.forName(driver);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获取链接
*
* @return
*/
public Connection getConn() {
Connection connection = null;
try {
connection = DriverManager.getConnection(url, name, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
}
2.编写好db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/book?&useSSL=true
name=root
password=1111
3.文件目录展示
4.因为我自己用的是MVC三层架构,所以还写了个类每次使用的时候就去extends下,里面还写了个关闭数据库的方法
4.1 BaseDao.java
import java.sql.*;
import LinkSQL.JdbcUtil;
public class BaseDao {
protected Connection connection;
protected PreparedStatement ps;
protected ResultSet rs;
protected String sql;
public void getConn() {
try {
connection = JdbcUtil.getInstance().getSQL();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void closeAll() {
if(connection != null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps != null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
5.那就展示下我在调用的时候怎么用到这个工具类
好了这就是一些常用的技巧,如果有不足之处请指正。。