jdbc

一、JDBC简介

SUN公司提供的一种数据库访问规则、规范, 由于数据库种类较多,并且java语言使用比较广泛,sun公司就提供了一种规范,让其他的数据库提供商去实现底层的访问规则。 我们的java程序只要使用sun公司提供的jdbc驱动即可。

二、JDBC使用

1、加入相关jar包

mysql-connector-java-5.1.7.rar

2、java代码中使用步骤

  • 注册驱动
  • 建立连接
  • 创建statement
  • 执行sql ,得到ResultSet
  • 遍历结果集

可以把一些参数、数据库用户名、密码等用一个配置文件存起来,方便修改。
jdbc.properties文件格式:

	driverClass=com.mysql.jdbc.Driver
	url=jdbc:mysql://localhost/student
	name=root
	password=root

加载jdbc.properties:

		//1. 创建一个属性配置对象
		Properties properties = new Properties();
		InputStream is = new FileInputStream("jdbc.properties");
		
		//使用类加载器,去读取src底下的资源文件。 后面在servlet
//			InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
		//2. 导入输入流。
		properties.load(is);
		
		//3. 读取属性
		driverClass = properties.getProperty("driverClass");
		url = properties.getProperty("url");
		name = properties.getProperty("name");
		password = properties.getProperty("password");

连接数据库:

		Class.forName(driverClass); //注册mysql-jdbc
        conn = DriverManager.getConnection(url, name, password); //链接

执行sql语句:
(1)不安全的做法:

如果字符串里含有sql关键词,可能该字符串的那部分就会当作关键词而被sql执行,就会引起一些麻烦(比如下面的or)

Statement st = conn.createStatement();
String sql = "select * from t_stu where name='123 or 1=1'";
		rs= st.executeQuery(sql);

(2)安全的做法:

		PrepareStatement ps;
		String sql = "insert into t_user values(null , ? , ?)";
		 ps = conn.prepareStatement(sql);
		 
		 //给占位符赋值 从左到右数过来,1 代表第一个问号, 永远你是1开始。
		 ps.setString(1, userName);
		 ps.setString(2, password);

遍历结果集:

		while(rs.next()){
			String name = rs.getString("name");
			int age = rs.getInt("age");
			
			System.out.println(name+"   " + age);
		}

使用完后释放资源:

private static void closeRs(ResultSet rs){
	try {
		if(rs != null){
			rs.close();
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}finally{
		rs = null;
	}
}
//同理:
	closeSt(st);
	closeConn(conn);

三、使用单元测试,测试代码

  1. 添加junit的支持。

    右键工程 --- add Library --- Junit --- Junit4

  2. 在方法的上面加上注解 , 其实就是一个标记。

    @Test
    public void testQuery() {
    ...
    }

  3. 光标选中方法名字,然后右键执行单元测试。 或者是打开outline视图, 然后选择方法右键执行。

四、Dao模式

Data Access Object 数据访问对象

封装好数据库连接、查询等,声明与实现分开来。
ps:平时也可以把这些东西封装成工具类

原文地址:https://www.cnblogs.com/lnu161403214/p/10437357.html