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
    评论
SqlHelper.java连接数据库通用类... package org.jdbc.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SqlHelper { /** * 设置单例 */ public static SqlHelper instance = new SqlHelper(); /** * 设置单例的一个实例方法 * * @return */ public static SqlHelper getInstance() { if (instance == null) { synchronized (SqlHelper.class) { instance = new SqlHelper(); } } return instance; } /** * 得到MySql连接 * * @return */ public static Connection getMySqlConnection() { Connection conn = null; String url = "jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user = "root"; String password = "root"; String driver="com.mysql.jdbc.Driver"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /** * 得到MMSQL连接 * @return */ public static Connection getMMSQLConnection() { String url = "jdbc:sqlserver://localhost:1433;DatabaseName=jdbc"; String user = "sa"; String password = "sa"; String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /** * 得到Oracle连接 * @return */ public static Connection getOracleConnection() { String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "scott"; String password = "scott"; String Driver="oracle.jdbc.driver.OracleDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /*** * 释放资源... * * @param rs * @param st * @param conn */ public static void Relesae(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值