JAVA笔记:Java数据库编程(二)

本篇学习下对数据库数据进行操作的过程。

Statement接口

要想对连接后的数据库进行操作,则必须使用Statement接口,此接口可以使用Connection接口中提供的createStatement()方法实例化。

Statement接口中的方法主要有:


增加数据实例:

import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.Statement ;
public class InsertDemo01{
	// 定义MySQL的数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
	// 定义MySQL数据库的连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
	// MySQL数据库的连接用户名
	public static final String DBUSER = "root" ;
	// MySQL数据库的连接密码
	public static final String DBPASS = "mysqladmin" ;
	public static void main(String args[]) throws Exception {	// 所有的异常抛出
		Connection conn = null ;		// 数据库连接
		Statement stmt = null ;			// 数据库操作
		Class.forName(DBDRIVER) ;	// 加载驱动程序
		String sql = "INSERT INTO user(name,password,age,sex,birthday) "+
			" VALUES ('李兴华','www.mldn.cn',30,'男','2008-08-27')" ;
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
		stmt = conn.createStatement() ;	// 实例化Statement对象
		stmt.executeUpdate(sql) ;		// 执行数据库更新操作
		stmt.close() ;					// 关闭操作
		conn.close() ;			// 数据库关闭
	}
};

更新数据:

package Demo01;

import java.sql.*;

;
public class ConnectionTest {
	// 定义数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	// 定义数据库连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	// 定义数据库用户名
	public static final String DBUSER = "root";
	// 定义数据库密码
	public static final String DBPASS = "zhengzehui";

	public static void main(String[] args) throws Exception {
		Connection conn = null;
		Statement stmt = null;
		Class.forName(DBDRIVER);
		int id = 1;
		String name = "老王";
		String sex = "女"; 
		int age = 36;
		String sql = "UPDATE student SET name= '" + name + "', sex= '" + sex
				+ "',age= '" + age + "'WHERE id = " + id;
		conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		stmt = conn.createStatement();
		stmt.executeUpdate(sql);
		stmt.close();
		conn.close();
	}
}

删除操作实例:

package Demo01;

import java.sql.*;

;
public class ConnectionTest {
	// 定义数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	// 定义数据库连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	// 定义数据库用户名
	public static final String DBUSER = "root";
	// 定义数据库密码
	public static final String DBPASS = "zhengzehui";

	public static void main(String[] args) throws Exception {
		Connection conn = null;
		Statement stmt = null;
		Class.forName(DBDRIVER);
		int id = 1;
		String sql = "DELETE FROM student WHERE id = " + id;
		conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		stmt = conn.createStatement();
		stmt.executeUpdate(sql);
		stmt.close();
		conn.close();
	}
}

PraparedStatement接口

然而在实际的开发中,不会使用Statement接口,因为其采用的是拼凑的SQL形式,就有可能造成SQL的注入漏洞,所以要使用PreparedStatement接口。

PreparedStatement接口是Statement接口的子接口,属于预处理操作,在操作时,先在数据表中准备了一条SQL语句,但是内容不设置,等到用户操作的时候再进行设置。

import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.ResultSet ;
import java.sql.PreparedStatement ;
import java.text.SimpleDateFormat ;
public class PreparedStatementDemo03 {
	// 定义MySQL的数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
	// 定义MySQL数据库的连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
	// MySQL数据库的连接用户名
	public static final String DBUSER = "root" ;
	// MySQL数据库的连接密码
	public static final String DBPASS = "mysqladmin" ;
	public static void main(String args[]) throws Exception{	// 所有异常抛出
		Connection conn = null ;		// 数据库连接
		PreparedStatement pstmt = null ;	// 数据库操作
		String keyWord = "李" ;	 // 设置查询关键字
		ResultSet rs = null ;	// 接收查询结果
		String sql = "SELECT id,name,password,age,sex,birthday " +
				" FROM user" ;
		Class.forName(DBDRIVER) ;	// 加载驱动程序
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
		pstmt = conn.prepareStatement(sql) ;	// 实例化PreapredStatement对象
		rs = pstmt.executeQuery() ;	// 执行查询
		while(rs.next()){
			int id = rs.getInt(1) ;
			String name = rs.getString(2) ;
			String pass = rs.getString(3) ;
			int age = rs.getInt(4) ;
			String sex = rs.getString(5) ;
			java.util.Date d = rs.getDate(6) ;
			System.out.print("编号:" + id + ";") ;
			System.out.print("姓名:" + name + ";") ;
			System.out.print("密码:" + pass + ";") ;
			System.out.print("年龄:" + age + ";") ;
			System.out.print("性别:" + sex + ";") ;
			System.out.println("生日:" + d + ";") ;
			System.out.println("-------------------------") ;
		}
		rs.close() ;
		pstmt.close() ;
		conn.close() ;			// 数据库关闭
	}
};






你可能感兴趣的:(JAVA笔记:Java数据库编程(二))