Mybatis、JDBC、Habernate、Mybatis+Spring的Mysql数据库操作实例

1、数据库操作实例:

public static void JDBCTest() throws Exception {
		Connection conn = null;
		String url = "jdbc:mysql://localhost:3306/mysql_learn?"
				+ "user=root&password=123qwe&useUnicode=true&characterEncoding=utf8";
		String selectSql = "select id,name,sex,is_del as isDel from mysql_learn.t_user where name like '%王%'";
		// 一、加载驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("加载驱动成功!");
			// 成功加载后,会将Driver类的实例注册到DriverManager类中。

			// 二、建立连接
			conn = DriverManager.getConnection(url);
			// 三、创建Statement对象
			// •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
			// 1、执行静态SQL语句。通常通过Statement实例实现。
			// 2、执行动态SQL语句。通常通过PreparedStatement实例实现。
			// 3、执行数据库存储过程。通常通过CallableStatement实例实现。具体的实现方式:
			// Statement stmt = con.createStatement() ;
			// PreparedStatement pstmt = con.prepareStatement(sql) ;
			// CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}")
			// ;
			
			Statement stmt = conn.createStatement();
			// 四、执行SQL
			// Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
			// 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
			// ,返回一个结果集(ResultSet)对象。
			// 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
			// DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
			// 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 语句。
			// 具体实现的代码:
			// ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
			// int rows = stmt.executeUpdate("INSERT INTO ...") ;
			// boolean flag = stmt.execute(String sql) ;
			ResultSet resultSet = stmt.executeQuery(selectSql);

			// 五、结果集处理
			// 两种情况:
			// 1、执行更新返回的是本次操作影响到的记录数。
			// 2、执行查询返回的结果是一个ResultSet对象。
			// • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
			// • 使用结果集(ResultSet)对象的访问方法获取数据:
			// while(rs.next()){
			// String name = rs.getString("name") ;
			// String pass = rs.getString(1) ; // 此方法比较高效
			// }
			// (列是从左到右编号的,并且从列1开始)
			List<User> users = new ArrayList();
			while (resultSet.next()) {
				User user = new User();
				resultSet.getLong(1);
				resultSet.getString(2);
				resultSet.getInt(3);
				resultSet.getInt(4);
				System.out.println("姓名:" + resultSet.getString(2));// 入如果返回的是int类型可以用getInt()
				users.add(user);
			}

			// 六、关闭连接 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
			// 明顺序相反:
			// 1、关闭记录集
			// 2、关闭声明
			// 3、关闭连接对象
			if (resultSet != null) { // 关闭记录集
				resultSet.close();
			}
			if (stmt != null) { // 关闭声明
				stmt.close();
			}
			if (conn != null) { // 关闭连接对象
				conn.close();
			}
		} catch (ClassNotFoundException e) {
			System.out.println("找不到驱动程序类 ,加载驱动失败!");
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("MySQL操作错误!");
			e.printStackTrace();
        } finally {
		    conn.close();
        }

	}



2、Mybatis数据库操作实例:

public static void myBatisTest() {
		try {
			// 1、创建读取配置文件myBatis-config.xml的输入流
			String resource = "myBatis-config.xml";
			Reader reader = Resources.getResourceAsReader(resource);
			// 2、创建SqlSessionFactory
			SqlSessionFactory factory = new SqlSessionFactoryBuilder()
					.build(reader);
			// 3、创建SQLSession
			SqlSession session = factory.openSession();
			// 4、调用mapper文件插入数据,需要将mapper文件加载到配置文件(myBatis-config.xml)中
			User user = new User();
			user.setName("王靖坤");
			user.setSex(1);
			user.setIsDel(0);
			session.insert("com.qding.mybatis.learn.model.User.insert", user);
			System.out.println(user.getId());
			System.out.println(user.getName());
			session.commit();
			session.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

你可能感兴趣的:(Mybatis、JDBC、Habernate、Mybatis+Spring的Mysql数据库操作实例)