直接使用jdbc连接数据库的代码:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC { public static void main(String[] args) { Connection c = null; Statement s = null; try { // Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化的相关工作 Class.forName("com.mysql.jdbc.Driver"); /* * 建立与数据库的Connection连接 这里需要提供: 数据库所处于的ip:127.0.0.1 (本机) 数据库的端口号: 3306 * (mysql专用端口号) 数据库名称 student 编码方式 UTF-8 账号 root 密码 admin */ c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/student?characterEncoding=UTF-8", "root", "admin"); // 这是用于执行sql语句的 s = c.createStatement(); // 准备sql语句 // 注意: 字符串要用单引号' String sql = ""; sql = "delete from Student where name = '小王'"; int iResult = s.executeUpdate(sql); if (iResult >= 0) { System.out.println("sql语句执行成功 " + iResult); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // 因为finally一定是会执行的,所以在finally中关闭资源 try { if (s != null) s.close(); // 后关闭Connection if (c != null) c.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
上面代码中是直接连接的mysql数据库,但是要修改连接信息时就会比较麻烦,所以可以将连接信息放到一个单独的属性文件中,创建工具类直接读取属性文件信息即可。
下面是JDBC项目的目录结构:主要是TestJdbcFile.java(主方法)、DBUtils.java(读取属性文件以及获取连接和关闭连接到工具类)
mysql.properties(连接数据库的信息文件)
看看mysql.properties属性文件中的内容:
Driver:要连接的数据库是mysql
url:数据库的地址
userName:数据库登陆名
password:数据库登陆密码
Driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/student userName=root password=admin
DBUtils.java工具类中的内容:该工具类的主要作用有三个(1)读取属性文件(2)返回一个数据库连接(3)关闭数据库连接
package utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBUtils { // 数据库驱动 private static String strDriver = ""; // 数据库地址 private static String strUrl = ""; // 数据库用户名 private static String strUserName = ""; // 数据库密码 private static String strPassword = ""; // 使用静态块来加载数据库连接的必要信息 static { // 属性文件 Properties p = new Properties(); try { // 通过相对路径加载文件 p.load(new FileInputStream(new File("JDBCfile/mysql.properties"))); // 用getProperty方法通过关键字获取信息 strDriver = p.getProperty("Driver"); strUrl = p.getProperty("url"); strUserName = p.getProperty("userName"); strPassword = p.getProperty("password"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 获取数据库连接的方法 public Connection getConn() { Connection conn = null; try { // 加载驱动 Class.forName(strDriver); // 获取数据库连接 conn = DriverManager.getConnection(strUrl, strUserName, strPassword); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return conn; } //关闭数据库资源方法 public void closeAll(ResultSet rs,Statement stat,Connection conn){ /*分别按顺序关闭数据库的结果集资源,Statement 对象资源以及Connection 连接数据库对象*/ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stat!=null){ try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
最后就是TestJdbcFile.java主方法中的内容了
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import utils.DBUtils; public class TestJdbcFile { public static void main(String[] args) { DBUtils dbUtils = new DBUtils(); //获取一个数据库连接 Connection conn = dbUtils.getConn(); Statement statement = null; ResultSet rSet= null; try { //创建可以执行sql语句的对象 statement = conn.createStatement(); //准备sql语句 String sql = "select * from Student"; //执行sql语句,获取结果集 rSet = statement.executeQuery(sql); //执行成功有结果集的时候 while(rSet.next()){ String strUseName = rSet.getString("name"); String strNumber = rSet.getString("number"); System.out.println("姓名是:"+strUseName+" 学号是"+strNumber); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭资源 dbUtils.closeAll(rSet, statement, conn); } } }
需要注意的是使用jdbc受先需要加载包, mysql的jar包下载地址:
http://dev.mysql.com/downloads/connector/
这里我用的是java,所以下载connector/J
搞定!