mysql数据库连接项目及基础增删改查封装代码

//使用JDBC连接数据库:

conf.properties:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/books
username=root
password=root

ConnectionFactory.java:

package ui;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class ConnectionFactory {

private static String driver=null;
private static String url=null;
private static String username=null;
private static String password=null;

static{

Properties pro=new Properties();
InputStream ips=ConnectionFactory.class.getResourceAsStream("conf.properties");
try {
pro.load(ips);
driver=pro.getProperty("driver");
url=pro.getProperty("url");
username=pro.getProperty("username");
password=pro.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}

public static Connection getCon(){
Connection con=null;
try {
Class.forName(driver);
con=DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}



}



//在数据库中进行增删查改的方法封装:

JdbcMould.java:

package ui;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Mould {

//修改
public static int update(String sql,PreparedSetter preSet){

Connection con=ConnectionFactory.getCon();
PreparedStatement pstm=null;
int row=0;
try {
pstm=con.prepareStatement(sql);
if(preSet!=null){
preSet.setValue(pstm);
}
row=pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DButil.close(pstm, con);
}
return row;

}

//查询
public static void query(String sql,PreparedSetter preSet,ResultHandler resultHand){
Connection con=ConnectionFactory.getCon();
PreparedStatement pstm=null;
ResultSet rs=null;

try {
pstm=con.prepareStatement(sql);
if(preSet!=null){
preSet.setValue(pstm);
}
rs=pstm.executeQuery();
if(resultHand!=null){
resultHand.resultSet(rs);
}

} catch (SQLException e) {
e.printStackTrace();
}finally{
DButil.close(rs, pstm, con);
}
}


public static int update(String sql,PreparedSetter preSet,Connection con){
int row=0;
PreparedStatement pstm=null;
try {
con.setAutoCommit(false);
pstm=con.prepareStatement(sql);
if(preSet!=null){
preSet.setValue(pstm);
}
row=pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DButil.close(pstm);
}
return row;

}

}


DButil.java

package ui;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DButil {

public static void close(ResultSet rs,PreparedStatement pstm,Connection con){

try {
if(rs!=null){
rs.close();
}
if(pstm!=null){
pstm.close();
}
if(con!=null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(PreparedStatement pstm,Connection con){
close(null,pstm,con);
}
public static void close(PreparedStatement pstm){
close(null,pstm,null);
}

}


PreparedSetter.java

package ui;

import java.sql.PreparedStatement;
import java.sql.SQLException;

public interface PreparedSetter {

public void setValue(PreparedStatement pstm)throws SQLException;

}

ResultHandler.java

package ui;

import java.sql.ResultSet;
import java.sql.SQLException;

public interface ResultHandler {

public void resultSet(ResultSet rs)throws SQLException;

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值