1.基本结构:
package com.atguigu.servlets; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class JDBCemo { public static void main(String[] args) throws Exception{ String url = "jdbc:mysql:///mysql"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); String sql = "update account set money = 2000 where id = 1"; Statement stmt = conn.createStatement(); int count = stmt.executeUpdate(sql); System.out.println(count); stmt.close(); conn.close(); } }
2.详细api解释:
①DriverManager(驱动管理类)作用:注册驱动 获取数据库连接
②Connectiong作用:获取执行sql的对象:createStatement() prepareStatement(sql)
③Statement作用:执行sql语句 int executeUpdate(sql)执行DML(数据操作语句:数据进行操作)、DDL(数据定义语句:操作数据库对象的结构) 返回影响的行数
ResultSet executeQuery(sql)执行DQL语句(数据查询语句:进行数据的查询) 返回结果集
④ResultSet作用:封装了DQL查询的结果
ResultSet stmt.executeQuery(sql)
ResultSet中定义的方法:
boolean next():向前移动一行,判断当前行是否为有效行,true为有效, false为无效
xxx getXxx(参数)获取数据
参数:int 列的编号 String:列的名称
package com.atguigu.servlets; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JDBCemo { public static void main(String[] args) throws Exception{ String url = "jdbc:mysql:///mysql"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); String sql = "select * from account"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()){ int id = rs.getInt(1); String name = rs.getString(2); double money = rs.getDouble(3); System.out.println(id); System.out.println(name); System.out.println(money); } stmt.close(); conn.close(); } }
⑤PreparedStatement作用:预编译sql语句并执行
优点:预编译sql,性能更好;防止sql注入;
想要打开预编译功能,需要在连接的url后加入一串代码
String url = "jdbc:mysql:///mysql&userServerPreStmts=true";
package com.atguigu.servlets; import java.sql.*; public class JDBCemo { public static void main(String[] args) throws Exception{ String url = "jdbc:mysql:///mysql"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); String sql = "select * from user where name = ? and password = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); String inname = "wangwu"; int inps = 123456; pstmt.setString(1, inname); pstmt.setInt(2, inps); pstmt.executeQuery(); pstmt.close(); conn.close(); } }
获取对象:
(1)注册驱动
Class.forName(("com.mysql.jdbc.Driver"));
mqsql5之后的驱动包就可以省略注册驱动的步骤
(2)获取连接对象
Connection conn = DriverManager.getConnection(url, username, password);
其中,url的语法:
jdbc:mysql://ip地址(域名:localhost)/数据库名称
实例: String url = "jdbc:mysql://localhost/mysql";
细节:如果连接的是本机mysql数据库,端口号为3306,则可以简写
String url = "jdbc:mysql:///mysql";