2021-04-14

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;  // 返回列表

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值