一、什么是JDNC
java 和 database 的连接
通过java 语言对数据库表的访问
通过 java的APL中具有数据连接相关组件 这些组件组合起来进行对数据库的访问JDBC
数据库连接步骤:
1.注册数据库驱动 (需要先导入驱动包 mysql的驱动加载包)
即 Class.forName(“com.mysql.jdbc.Driver”);
2.连接对象
Connection conn = DriverManger.getConnection(“url,user,password”);
3.获取sql对象
Statement st = conn.createStatement();
String sql = " select * from xxx";
4.获取结果集对象
ResultSet rs = st.executeQuery(sql);
5. 关闭且释放资源
conn.close();
st.close();
rs.close();
2.熟悉了 jdbc的连接 那么来想想 如果每次执行jdbc ,都会出现 许多重复的代码
那么一起来进行一下 数据库的封装。
首先考虑到,在使用 数据连接时,需要将 驱动进行加载,那么考虑 驱动加载 ,在进行操作数据 操作时,秩序加载一次,说的这么明白,那么肯定 在 使用工具类的时候将, 需要用到static 静态代 码块 ,可以在 类加载的时候,加载,而且只加载一次。
接下来看看代码如何编写。
static{
try {
//对于 编程的各个部分 为了使代码模块化 耦合度越低,我们将数据连接的地方 ,使用到 配置文件 去读取,一旦数据库的更换 ,这样不需要改变,工具类中的代码,只需将配置文件文件去改变
//1.用流的形式去读 配置文件下的文件
InputStream is =
JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properites");
properties.load(is);
String driver = properties.getProperty("driver");
user = properties.getProperty("user");
password = properties.getProperty("password");
url = properties.getProperty("url");
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
配置文件(内容)
/******************************/
//第一个参数是 数据加载驱动
ClassDirver=com.mysql.jdbc.Driver
//在对象创建时需要加载驱动的路径
jdbcurl=jdbc:mysql:///t1
//数据库用户名
username=root
//数据库密码
password=root
/*****************************/
--工具类的编写
需要实现 数据的增删改
当数据库实现DML语言类型操作时,需要用到executeUpdata()
当数据库实现DQL语言类型操作时,需要用到executeQuery()
所以将增删改操作封装在一个方法中,因为返回值为改变数组库记录的行数。
```css
public static int UDI(String sql){
try {
st = JDBCUtils.getConnection().createStatement();
int i =st.executeUpdate(sql);
System.out.println(i);
return i;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
针对于查询操作:我们需要用 针对 于这个类,当执行完这个方法后会进行,返回一个结果集,所以针对查询,来说单独做一个封装。
public static ResultSet Querey(String sql){
try {
st = JDBCUtils.getConnection().createStatement();
rs = st.executeQuery(sql);
return rs;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
数据库连接 jdbc中,每当资源加载完时需要对资源进行关闭。
那么写一个进行资源关闭的方法,针对数据库连接中的3个对象,我们进行这样的关闭方式。
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
}
}
}
到此jdbc简单的封装就此结束了。