JDBC数据库连接的步骤:
-
下载并将 放到tomcat的lib目录下。
-
加载MySql数据库的驱动(通过Class.forName();方法来加载,所传参数为mysql驱动字符串)
-
创建数据库连接(通过调用getConnection();方法,传入数据库地址、用户名和密码。该方法返回的是一个数据库连接)
-
创建数据库操作对象(调用数据库连接对象的createStatement();方法)
public class DataBaseUtil { //数据库连接工具包 public static Connection DataBaseConnection(){ String driver="com.mysql.jdbc.Driver";//驱动路径 String url="jdbc:mysql://**"; //**为数据库地址 String user="root";//访问数据库的用户名 String password="111111";//数据库用户密码 try{ Class.forName("driver");//加载驱动 Connection conn=DriverManager.getConnection(url,user,password);//创建数据库连接
return conn ; }catch(Exception e){ e.printStackTrace(); } return null ; } public static Statement getDefaultStatement() throws Exception{ Connection conn = DataBaseUtil.getDefaultConnection(); Statement stmt = conn.createStatement();//创建数据库操作对象 return stmt ; } public static void close(Connection conn){ try{ if(null != conn && !conn.isClosed()){ conn.close(); }catch(Exception e){ e.printStackTrace();
} } }
调用数据库工具包中的getDefaultStatement();方法,返回值为Statement。使用Statement需要注意字符串拼接的问题。
-
statement用于查询的方法:executeQuery(sql); ;用于增删改的方法: execute(sql);
例子:
Public ResultSet exqueryInfo(){ try{ Statement statement = DataBaseUtil.getDefaultStatement(); String sql="select * from 表名 where 字段1 = '" + 变量1 + "' and 字段2 = '"+ 变量2 + "'"; ResultSet rs=statement.executeQuery(sql); return rs; }catch(Exception e){ e.printStackTrace(); } return null ; }
Statement每次执行sql语句,相关数据库都要执行sql语句的编译;而prestatement是预编译的,prestatement支持预处理。故在对数据库只执行一次性存取的时候,用Statement对象进行处理;当需要进行批量处理的时候,prestatement能大大降低运行时间,加快访问数据库的速度。
调用数据库工具包中的DataBaseConnection(); 方法,返回值为Connection。
-
prestatement用于查询的方法:executeQuery(sql); ;用于增删改的方法:executeUpdate(sql);
public void updateAC(String a, String b, String c){ String sql = "UPDATE common_tabBooked SET A=? , B=? WHERE C = ? "; //改
try{ Connection conn = DataBaseUtil.getDefaultConnection(); PreparedStatement pstm = conn.prepareStatement(sql); pstm.setString(1, a); pstm.setString(2, b); pstm.setString(3, c); pstm.executeUpdate(); }catch(Exception e){ e.printStackTrace(); } }
增:
String sql="INSERT INTO 表名 (字段1,字段2,字段3,字段4,字段5) values(?,?,?,?,?)";
查:
string sql = "select * from 表名 where 字段1 = ?";
删:
string sql = "delete from 表名 where 字段1 = ?";