JDBC的简单实现
软件:eclipse、navicat
一、在数据库中创建需要的表
二、用eclipse进行编写实现对库中表的增删改查
三、实例操作:
1、建立数据库的连接
private static String url="jdbc:mysql://localhost:3308/db_ishop?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false\r\n";
private static String user="root";//用户名
private static String password="123456";//密码
创建数据库连接对象
加载驱动
protected Connection conn;
public Connection getConnection() {
if (conn !=null) {
return conn;}
Class.forName("com.mysql.cj.jdbc.Driver");
conn =DriverManager.getConnection(url,user,password);
return conn;}
2、对数据库进行增删改查
插入(insert)
String sql ="insert into t_goodstype(typename)values (?) ";//?占位符
Connection conn =super.getConnection();
PreparedStatement pStatement=null;
int result =0;
try {
pStatement=conn.prepareStatement(sql);
pStatement.setString(1, goodType.getTypeName());
result= pStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally { super.closeConnection(null,pStatement,conn);
}
return result;
结果:
修改(update)
String sql ="update t_goodstype set typename =? where typeid =? ";
Connection conn =super.getConnection();
PreparedStatement pStatement=null;
int result =0;
try {
pStatement=conn.prepareStatement(sql);
pStatement.setObject(1, goodType.getTypeName());
pStatement.setObject(2, goodType.getTypeId());
result= pStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
super.closeConnection(null,pStatement,conn);
}
return result;
结果:
删除(delete)
String sql = "delete from t_goodstype where typeid=?";
Connection conn = super.getConnection();
PreparedStatement ps = null;
int result = 0;
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, goodType.getTypeId());
} catch (SQLException e) {
e.printStackTrace();
}finally {
super.closeConnection(null, ps, conn);
}
return result;
结果:
查询(select)分页
public List<GoodsType> getGoodsTypePageList(GoodsType search, PageHelper pageHelper){
String sql = "select * from t_goodstype where 1=1 "; // where 1=1是为了便于添加查询条件
// sql需要动态化
if(search.getTypeName()!= null && !search.getTypeName().equals("")) { // 说明有查询条件
sql += "and typename like ?";}
// 添加分页条件:limit startrow, rownum
sql += "limit ?, ?";
// 计算开始行
int startRow = (pageHelper.getCurrentPage() - 1) * pageHelper.getPageSize(); // (1 - 1)*10
int pageSize =pageHelper.getPageSize();
// 获取数据库连接对象
Connection conn = super.getConnection();
// 创建Preparedstatement:1、性能更好 2、防止SQL注入
PreparedStatement ps = null; // 将定义放在外边
ResultSet rs = null;
int result = 0;
List<GoodsType> list = new ArrayList<GoodsType>();
try {
ps = conn.prepareStatement(sql);
// 动态赋值
int paramIndex = 1;
if(search.getTypeName()!= null && !search.getTypeName().equals("")) { // 说明有查询条件
// 有查询条件,就给查询的占位符赋值
ps.setString(paramIndex, "%"+search.getTypeName()+"%");
paramIndex++;
}
// 给分页条件赋值
ps.setInt(paramIndex, startRow);
paramIndex++;
ps.setInt(paramIndex, pageSize);
// 因为是select操作,则执行executeQuery操作
rs = ps.executeQuery(); // 如果执行成功,返回插入成功的数据的条数
while(rs.next()) {
GoodsType gt = new GoodsType(); // 将结果集中的每一条数据都封装成一个GoodsType对象
gt.setTypeId(rs.getInt("typeid"));
gt.setTypeName(rs.getString("typeName"));
list.add(gt); // 将封装的对象存入列表}}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list; // 返回列表}
// 统计当前条件下总共有多少条数据
public int getTotalCounts(GoodsType search) {
// 定义SQL语句 ?是占位符
String sql = "select count(*) from t_goodstype where 1=1 "; // where 1=1是为了便于添加查询条件
// sql需要动态化
if(search.getTypeName()!= null && !search.getTypeName().equals("")) { // 说明有查询条件
sql += "and typename like ?";}
// 获取数据库连接对象
Connection conn = super.getConnection();
// 创建Preparedstatement:1、性能更好 2、防止SQL注入
PreparedStatement ps = null; // 将定义放在外边
ResultSet rs = null;
int result = 0;
try {
ps = conn.prepareStatement(sql);
// 动态赋值
int paramIndex = 1;
if(search.getTypeName()!= null && !search.getTypeName().equals("")) { // 说明有查询条件
// 有查询条件,就给查询的占位符赋值
ps.setString(paramIndex, "%"+search.getTypeName()+"%");
paramIndex++;}
// 因为是select操作,则执行executeQuery操作
rs = ps.executeQuery(); // 如果执行成功,返回插入成功的数据的条数
while(rs.next()) {
result = rs.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// 统一释放连接资源
super.closeConnection(null, ps, conn);
}
return result; // 返回列表
结果: