JDBC入门汇总及范例讲解(二)

2015-07-24 07:47:26 · 作者: · 浏览: 8
PASS="christmas258@"; public void testDDL(){ try { //1.注册驱动 Class.forName(DBDRIVER); //2.获取连接 Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //3.创建Statement对象 Statement stmt = conn.createStatement(); //4.准备sql语句 String sql ="CREATE TABLE student(sid INT PRIMARY KEY,sname VARCHAR(20),age INT)"; //5.通过statement对象发送sql语句,返回执行结果 int count = stmt.executeUpdate(sql); System.out.println("CREATE TABLE student......"); //6.打印执行结果 System.out.println("影响了"+count+"条记录"); //执行插入操作 System.out.println("Inserting records into the table..."); sql = "INSERT INTO student " + "VALUES (100, '小文', 18)"; stmt.executeUpdate(sql); sql = "INSERT INTO student " + "VALUES (101, '大林', 25)"; stmt.executeUpdate(sql); sql = "INSERT INTO student " + "VALUES (102, '阿白', 30)"; stmt.executeUpdate(sql); sql = "INSERT INTO student " + "VALUES(103, '小小', 28)"; stmt.executeUpdate(sql); System.out.println("Inserted records into the table..."); //执行查找操作 sql = "SELECT* FROM student"; System.out.println("SELECT records FROM the table..."); ResultSet rs = stmt.executeQuery(sql); //输出查找结果 while(rs.next()){ //先获取数据 int sid = rs.getInt("sid"); String sname = rs.getString("sname"); int age = rs.getInt("age"); //打印结果 System.out.print("sid: " + sid); System.out.print(" sname: " +sname); System.out.println(" age: " + age); } rs.close(); //7.关闭资源 try { if(stmt!=null) { stmt.close(); } } catch (Exception e) { e.printStackTrace(); } try { if(conn!=null) { conn.close(); } } catch (Exception e) { } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { JdbcTest jdbcTest=new JdbcTest(); jdbcTest.testDDL(); } }
然后直接运行,输出结果如下:

?

\

?

从上面的例子可以看到,这个过程还是比较简单的,这里要注意的是,school数据库要存在,如果没有的话,自己在MySql按如下语句创建一个:

?

CREATE DATABASE school;

如果要进行DQL与DDL操作,都可以把SQL语句写好,然后调用statement的executlUpdate方法来给数据库执行SQL语句,这个方法返回一个整数值,表示数据库中有多少行受到了影响。如果我们不改变上述的程序,想要再向数据库发出SQL语句,那么又要写一个程序来再次连接,操作完后又要关闭statement对象 和connection对象,这是十分繁琐的。所以,我们一般把连接过程和释放对象的过程抽取到一个工具类中。工具类中的代码如下:

?

?

package com.mucfc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class SqlDB {

	//定义数据库驱动程序
	private static final String DBDRIVER="com.mysql.jdbc.Driver";
	//数据库连接地址
	private static final String DBURL="jdbc:mysql://localhost:3306/school";//school表示数据库
	//数据库用户名
	private static final String DBUSER="root";
	//电脑上的数据库密码
	private static final String DBPASS="christmas258@";
	    public static Connection getconnection() {
	        Connection conn = null;
	        try {
	            // 1.注册驱动
	            Class.forName(DBDRIVER);
	            //2.获取连接
	            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);  
	            //3.创建Statement对象
	            Statement stmt = conn.createStatement();   
	        } catch (Exception e) {
	            e.printStackTrace();
	        } 
	        return conn;

	    } 
	     //7.关闭资源
	    public static void close(Statement statement, Connection connection) {
	        {
	            try {
	                if (statement != null)
	                    statement.close();
	                if (connection != null) {
	                    connection.close();
	                }
	            } catch (SQLException e) {
	                e.printStackTrace();
	            }
	        }
	    }
}

然后我们还是要完成上面相同的事情,在JdbcTest里添加如下方法

?