JDBC:连接Java与数据库的桥梁————数据库操作(增、删、改、查*)

数据库操作

准备工作——建表
如:学生表(Student)包含属性(id、姓名、年龄、性别)
创建Student类,(属性、构造、封装、tostring方法)
创建Dao类,增删改查均写在Dao类中。

  1. 增(insert into):
    insert(String sql,Object…params)——最通用的写法,传入sql语句与占位符的值。
    (1) 获取数据库的连接;
    (2) 获取PreparedStatement对象(sql语句);
    (3)设置占位符与占位符的值;
    (4)executeUpdate提交修改;
    (5)关闭资源。
    代码如下:
public void insert(String sql,Object...params){
	Connection conn=null;
	PreparedStatement ps=null;
	try {
		 	conn=JDBCUitl.getConnection();
			ps=conn.prepareStatement(sql);
			setParams(ps,params);
			 ps.executeUpdate();	
	} catch (SQLException e) {
			e.printStackTrace();
	}finally{
			JDBCUitl.close(conn, ps,null);
	}
}

测试:

		BaseDao<Score> baseDao = new BaseDao<Score>();
		String sql = "insert into Member values(?,?)";
		baseDao.insert(sql,"05","王五");

执行前:
插入前
执行后:
插入后

  1. 删、改(delect from、update 表名 set):
    删改操作与增类似,仅仅测试是的aql语句不同,不多赘述。
  2. 查(select * from):
    数据库查操作需要把查询结果存入结果集合(ResultSet rs)中,考虑到对象类型问题需要编写rowMapper接口,根据操作不同的表的情况来实现接口,查询方法需要设置返回值(List).
    (1)获取数据库的连接;
    (2)定义List list;
    (3)获取PreparedStatement对象;
    (4)获取ResultSet对象;
    (5)设置占位符与占位符的值;
    (6)判断如果查询存在数据即存入list中(list.add);
    (7)executeUpdate提交修改;
    (8)关闭资;
    (9)返回list。
    实现代码如下:
	public List<T> query(String sql,RowMapper rm,Object... param){
		List<T> list=new ArrayList<T>();
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
			try {
				conn = JDBCUitl.getConnection();
				ps = conn.prepareStatement(sql);
				setParams(ps, param);
				rs = ps.executeQuery();
				while(rs.next()){
					T t=(T) rm.rowMapper(rs);
					list.add(t);
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
				JDBCUitl.close(conn, ps, rs);
			}
			return list;
	}

测试:

BaseDao<Score> baseDao=new BaseDao<Score>();
String sql="select m.mname,c.cname,s.score from score s join member m on s.mid=m.mid join course c on c.cid=s.cid";
List<Score> list=baseDao.queryAll(sql, new ScoreRowMapper());
for(Score d:list){
	System.out.println(d.toString());
}

控制台输出如下:查询结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值