300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java基础93 JDBC连接MySQL数据库

Java基础93 JDBC连接MySQL数据库

时间:2024-04-23 07:43:43

相关推荐

Java基础93 JDBC连接MySQL数据库

本文知识点(目录):

1、什么是jdbc

2、jdbc接口的核心API

3、使用JDBC技术连接MySQL数据库的方法

4、使用Statement执行sql语句(DDL、DML、DQL)

5、使用PreparedStatement执行sql语句

6、使用callablestaement执行sql语句,调用存储过程

7、附录(jdbc连接数据库 实操)

8、完整的JDBC封装过程,及调用jdbc的使用过程实例

1、什么是jdbc

简单的讲就是:使用java代码(程序)发送sql语句的技术,称为jdbc技术。

2、jdbc接口的核心API

1 |-Driver 接口:表示java驱动程序接口。所有的具体的数据库厂商要实现的接口. 2 |-connect(Stringurl, Propertiesinfo):连接数据库的方法 3Url:连接数据库的URL 4URL语法:jdbc协议:数据库子协议://主机:端口/数据库名 5User:数据库的用户名 6Password:数据的用户密码 7 |-DriverManager 类:驱动管理器类,用于管理所有的注册的驱动程序 8 |-registerDriver(Driverdriver):注册驱动类对象 9 |-getConnection(String url, String user, String password):获取连接对象10 |-Connection 接口:表示java程序和数据库的连接对象11 |-createStatement()12 |-prepareStatement(String sql):创建PreparedStatement对象13 |-prepareCall(String sql):创建CallableStatement对象14 |-statement 接口:用于执行静态的sql语句15 |-executeUpdate(String sql): 执行静态的sql语句(DDL、DML)16 |-executeQuery(String sql) :静态的查询sql语句(DQL)17 |-PreparedStatement 接口:用于执行预编译sql语句18|-executeUpdate(String sql):执行静态的sql语句(DDL、DML)19|-executeQuery(String sql):静态的查询sql语句(DQL)20 |-CallableStatement 接口:用于执行存储过程的sql语句(call xxx)21 |-ResultSet 接口:用于封装查询出来的数据22 |-next():将光标移到下一行23 |-getxxx(int columnIndex):获取列的值有getInt()、getString()、getArray()、getURL() 等等

24 |-getRow():获取当前行编号。

3、使用JDBC技术连接MySQL数据库的方法

1 package com.shore.a_jdbc; 2 3 import java.sql.Connection; 4 import java.sql.Driver; 5 import java.sql.DriverManager; 6 import java.util.Properties; 7 8 /** 9 * @author DSHORE/-3-2310 *11 */12 //连接MySQL数据库的几种方法13 public class connJDBC {14// jdbc协议:数据库的子协议:主机:端口/要连接的数据库名称15private String url = "jdbc:mysql://localhost:3306/school";//连接数据库的URL链接16private String user = "root";//用户名17private String password = "123456";//密码18/*19* 第一种方法:20* */21public void test1() throws Exception{22 //1.创建驱动程序类对象23 Driver driver = new com.mysql.jdbc.Driver();24 //Driver driver = new org.gjt.mm.mysql.Driver();//旧版本的创建方法25 //设置用户名密码26 Properties props = new Properties();27 props.setProperty("user",user);28 props.setProperty("password",password);29 //2.连接数据库,返回连接对象30 Connection conn = driver.connect(url, props);31 System.out.println(conn);//返回值:com.mysql.jdbc.JDBC4Connection@29c56c60,表示已连接成功32}33/*34* 第二种方法:使用驱动管理器类连接数据库35* */36public void test2()throws Exception{37 //1.创建驱动程序类对象38 Driver driver = new com.mysql.jdbc.Driver();//MySQL数据库39 //Driver driver2 = new com.oracle.jdbc.Driver();//Oracle数据库40 //注册驱动程序(可以注册多个驱动)41 DriverManager.registerDriver(driver);42 //DriverManager.registerDriver(driver2);43 //2.连接数据库44 Connection conn=DriverManager.getConnection(url, user, password);45 System.out.println(conn);46}47/*48* 第三种方法:使用加载驱动程序类 来注册 驱动程序。(推荐使用这种方式连接数据库)49* */50public void test3() throws Exception{51 //通过得到字节码对象的方式加载静态代码块,从而注册驱动52 Class.forName("com.mysql.jdbc.Driver");53 //2.连接数据库54 Connection conn = DriverManager.getConnection(url, user, password);55 System.out.println(conn); 56}57 }

4、使用Statement执行sql语句

4.1、执行DDL语句

1 package com.shore.b_statement; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 import org.junit.Test; 9 /*10 *使用statement对象执行静态sql语句(创建表)11 **/12 public class Demo1 {13//连接数据库的URL14private String url="jdbc:mysql://localhost:3306/school";15 //jdbc协议:数据库的子协议:主机:端口/连接的数据库16private String user="root";//用户名17private String password="123456";//密码1819//执行DDL语句20@Test21public void test1(){22 Statement statement = null;23 Connection connection = null;24 try {25 //1.注册驱动26 Class.forName("com.mysql.jdbc.Driver");27 //2.获取连接对象28 connection = DriverManager.getConnection(url, user, password);29 //3.创建statement30 statement = connection.createStatement();31 //4.准备sql语句32 String sql = "CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(32),sex VARCHAR(2));";//创建表33 int count = statement.executeUpdate(sql);34 System.out.println("影响行数:"+count+"行!");35 } catch (ClassNotFoundException e) {36 e.printStackTrace();37 } catch (SQLException e) {38 e.printStackTrace();39 }finally{40 //5.关闭连接(顺序:后代开的先关闭)41 try {42 if(statement != null) statement.close();43 if(connection != null) connection.close();44 } catch (SQLException e) {45 e.printStackTrace();46 } 47 }48}49 }

4.2、执行DML语句

封装工具类(JdbcUtil.java) 文件。(由于连接数据库和关闭资源的那部分代码是不变的,所以将他们封装起来,用到时 就直接调用即可)

1 package com.shore.util; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.IOException; 6 import java.sql.Connection; 7 import java.sql.DriverManager; 8 import java.sql.ResultSet; 9 import java.sql.SQLException;10 import java.sql.Statement;11 import java.util.Properties;12 13 public class JdbcUtil {//把固定不变的那部分代码封装起来14//动态连接数据15private static String url = null;16private static String user = null;//用户名17private static String password = null;//密码18private static String driverClass = null;19//静态代码块中(只加载一次)20static{21 //读取db.properties22 Properties props = new Properties();23 try {24 FileInputStream fis = new FileInputStream("./src/db.properties");25 //加载文件26 props.load(fis);27 url = props.getProperty("url");28 user = props.getProperty("user");29 password = props.getProperty("password");30 driverClass = props.getProperty("driverClass");31 //注册驱动32 Class.forName(driverClass);33 } catch (FileNotFoundException e) {34 e.printStackTrace();35 } catch (IOException e) {36 e.printStackTrace();37 } catch (ClassNotFoundException e) {38 e.printStackTrace();39 System.out.println("注册驱动失败");40 }41}42//获取连接43public static Connection getConnection(){44 try {45 Connection conn = DriverManager.getConnection(url, user, password);46 return conn;47 } catch (SQLException e) {48 e.printStackTrace();49 throw new RuntimeException();50 }51}52//释放资源53public static void close(Connection conn,Statement stmt,ResultSet rs){54 try {55 if(stmt != null) stmt.close();56 if(conn != null) conn.close();57 if(rs != null) rs.close();58 } catch (SQLException e) {59 e.printStackTrace();60 }61}62 }

db.properties配置文件(存储数据库链接、用户及密码等)

1 url = jdbc:mysql://localhost:3306/school//把数据库的链接入口配置在一个文件中,方便以后操作(更改账号密码等等)2 user = root3 password = 1234564 driverClass = com.mysql.jdbc.Driver

执行DML语句 正文

1 package com.shore.b_statement; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 import org.junit.Test; 9 10 import com.bw.util.JdbcUtil;11 12 /**13 *使用statement执行DML语句(添加、删除、修改数据)14 *15 */16 public class Demo2 {17/*18* 向student表中添加数据19* */20@Test21public void testInsert(){22 ResultSet rs = null;23 Connection conn = null;24 Statement stmt = null;25 //通过工具类获取;连接对象26 conn = JdbcUtil.getConnection();27 //常见statement对象28 try {29 stmt=conn.createStatement();30 } catch (SQLException e) {31 e.printStackTrace();32 }33 String sql = "INSERT INTO student(NAME,sex) VALUES('张三','女');";34 try {35 int count = stmt.executeUpdate(sql);36 System.out.println(count);37 } catch (SQLException e) {38 e.printStackTrace();39 }40 JdbcUtil.close(conn,stmt,rs);41}42/*43* 修改student表中的数据44* */45@Test46public void testUpdate(){47 ResultSet rs = null;48 Connection conn =null;49 Statement stmt = null;50 //通过工具类获取;连接对象51 conn = JdbcUtil.getConnection();52 //常见statement对象53 try {54 stmt = conn.createStatement();55 } catch (SQLException e) {56 e.printStackTrace();57 }58 String sql = "UPDATE student SET NAME = '王五' WHERE id = 1;";59 try {60 int count=stmt.executeUpdate(sql);61 System.out.println(count);62 } catch (SQLException e) {63 e.printStackTrace();64 }65 JdbcUtil.close(conn,stmt,rs);66}67/*68* 删除student表中的数据69* */70@Test71public void testDelete(){72 ResultSet rs = null;73 Connection conn = null;74 Statement stmt = null;75 //通过工具类获取;连接对象76 conn = JdbcUtil.getConnection();77 //常见statement对象78 try {79 stmt = conn.createStatement();80 } catch (SQLException e) {81 e.printStackTrace();82 }83 String sql = "DELETE FROM student WHERE id = 3;";84 try {85 int count = stmt.executeUpdate(sql);86 System.out.println(count);87 } catch (SQLException e) {88 e.printStackTrace();89 }90 JdbcUtil.close(conn,stmt,rs);91}92 }

4.3、执行DQL语句

1 package com.shore.b_statement; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 import org.junit.Test; 9 10 import com.bw.util.JdbcUtil;11 12 /*13 * 使用statement执行sql语句(查询操作语句)14 * */15 public class Demo3 {16@Test17public void test1(){18 ResultSet rs = null;19 Connection conn = null;20 Statement stmt = null;21 //获取连接22 conn = JdbcUtil.getConnection();23 //创建statement24 try {25 stmt = conn.createStatement();26 } catch (SQLException e) {27 e.printStackTrace();28 }29 //准备sql语句30 String sql = "SELECT * FROM student;";//查询表中所有数据31 try {32 rs=stmt.executeQuery(sql);33 /*//移动光标34 boolean flag=rs.next();35 if(flag){36 //取出值37 //索引38 int id=rs.getInt(1);39 String name=rs.getString(2);40 String sex=rs.getString(3);41 System.out.println(id+","+name+","+sex);42 }*/43 //遍历结果44 while(rs.next()){45 int id=rs.getInt("id");46 String name=rs.getString("name");47 String sex=rs.getString("sex");48 System.out.println(id+","+name+","+sex);49 }50 } catch (SQLException e) {51 e.printStackTrace();52 }finally{53 JdbcUtil.close(conn, stmt, rs);54 }55}56 }

5、使用PreparedStatement执行sql语句

1 package com.shore.c_prepared; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import org.junit.Test; 9 10 import com.bw.util.JdbcUtil;11 12 /*13 * preparedStatement执行sql语句(有效防止sql注入的问题)14 * */15 public class Demo1 {16//增加17@Test18public void testInsert(){19 Connection conn = null;20 PreparedStatement stmt = null;21 ResultSet rs = null;22 //1.获取连接23 conn = JdbcUtil.getConnection();24 //2准备预编译的sql25 String sql = "INSERT INTO student(NAME,sex) VALUES(?,?);";//?表示一个参数的占位符26 try {27 //3执行预编译的sql语句(检查语法)28 stmt = conn.prepareStatement(sql);29 //4.设置参数30 stmt.setString(1,"赵六"); //可用name作为参数代表“赵六” 从页面传值来此31 stmt.setString(2,"女");32 //5.发送参数,执行sql33 int count = stmt.executeUpdate();34 System.out.println("影响了"+count+"行");35 } catch (SQLException e) {36 e.printStackTrace();37 }finally{38 JdbcUtil.close(conn, stmt, rs);39 } 40}41 }

6、使用callablestaement执行sql语句,调用存储过程

MySQL存储过程 相关知识点:/dshore123/p/10559182.html

1 -- 1.带有输入参数的存储过程2 DELIMITER $3 CREATE PROCEDURE pro_test(IN sid INT)4 BEGIN5SELECT * FROM student WHERE id=sid;6 END $7 8 CALL pro_test(2);

1 -- 2.执行带有输出参数的存储过程2 DELIMITER $3 CREATE PROCEDURE pro_test(IN sid INT,OUT sname VARCHAR(32))4 BEGIN5SELECT NAME INTO sname FROM student WHERE id=sid;6 END $7 8 CALL pro_test(2,@sname);9 SELECT @sname;

正文代码

1 package com.shore.d_callable; 2 3 import java.sql.CallableStatement; 4 import java.sql.Connection; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import org.junit.Test; 9 10 import com.bw.util.JdbcUtil;11 12 /**13 * 使用CallableSatement调用存储过程14 * @author lx15 *16 */17 public class Demo1 {18 19/*20* 1.带有输入参数的存储过程21* CALL pro_test(2)22* */23@Test24public void test1(){25 Connection conn = null;26 ResultSet rs = null;27 CallableStatement stmt = null;28 //获取连接29 conn = JdbcUtil.getConnection();30 //准备sql31 String sql = "CALL pro_test(?);"; //可以执行预编译的sql32 try {33 //预编译34 stmt = conn.prepareCall(sql);35 //设置参数36 stmt.setInt(1, 2);37 //注意:所有的存储过程的sql语句都是使用executeQuery38 rs = stmt.executeQuery();39 //遍历起结果40 while(rs.next()){41 int id = rs.getInt("id");42 String name = rs.getString("name");43 String sex = rs.getString("sex");44 System.out.println(id+","+name+","+sex);45 }46 } catch (SQLException e) {47 e.printStackTrace();48 }finally{49 JdbcUtil.close(conn, stmt, rs);50 }51}52/*53* 54* 2.执行带有输出参数的存储过程55* */56@Test57public void test2(){58 Connection conn = null;59 ResultSet rs = null;60 CallableStatement stmt = null;61 //获取连接62 conn = JdbcUtil.getConnection();63 //准备sql64 String sql = "CALL pro_test(?,?);"; //第一个?是输入参数,第二个?是输出参数65 try {66 //预编译67 stmt = conn.prepareCall(sql);68 //设置参数69 stmt.setInt(1, 2);70 //设置输出参数71 /*72 *参数 一:参数的位置73 *参数二:存储过程中输出参数的jdbc类型 varchar(32)74 * */75 stmt.registerOutParameter(2,java.sql.Types.VARCHAR);76 //发送参数,执行77 stmt.executeQuery();78 /* //得到输出参数的值79 * 索引值:预编译sql中的输出参数的位置80 * */81 String result = stmt.getString(2);//getxxx方法专门用于获取存储过程中的输出参数82 System.out.println(result);83 } catch (SQLException e) {84 e.printStackTrace();85 }finally{86 JdbcUtil.close(conn, stmt, rs);87 }88} 89 }

附录

创建表:contact

1 create contact(2id varchar(32) primary key,3name varchar(32),4sxe varchar(32),5age int,6phone varchar(32),7email varchar(32),8qq varchar(32)9 );

使用“增删改查(CRUD)”操作,连接数据库

1 package com.shore.dao.impl; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.util.ArrayList; 8 import java.util.List; 9 import java.util.UUID; 10 11 import com.shore.dao.ContactDAO; 12 import com.shore.entity.Contact; 13 import com.shore.util.JdbcUtil; 14 15 public class ContactDAOMySqlImpl implements ContactDAO{ 16 17//添加数据 18public void addContact(Contact contact) { 19 Connection conn; 20 PreparedStatement stmt = null; 21 ResultSet rs = null; 22 conn = JdbcUtil.getConnection(); 23 String sql = "insert into contact(id,name,sex,age,phone,email,qq) values(?,?,?,?,?,?,?)"; 24 try { 25 //执行预编译的sql语句(检查语法) 26 stmt = conn.prepareStatement(sql); 27 String id = UUID.randomUUID().toString().replace("-",""); 28 stmt.setString(1, id); 29 stmt.setString(2, contact.getName()); 30 stmt.setString(3, contact.getSex()); 31 stmt.setInt(4, contact.getAge()); 32 stmt.setString(5, contact.getPhone()); 33 stmt.setString(6, contact.getEmail()); 34 stmt.setString(7, contact.getQq()); 35 stmt.executeUpdate(); 36 } catch (SQLException e) { 37 e.printStackTrace(); 38 }finally{ 39 JdbcUtil.close(conn, stmt, rs); 40 } 41} 4243//查询所有数据 44public List<Contact> finAll() { 45 Connection conn; 46 PreparedStatement stmt = null; 47 ResultSet rs = null; 48 //获取连接 49 conn = JdbcUtil.getConnection(); 50 String sql = "select * from contact";51 try { 52 //执行预编译的sql语句(检查语法) 53 stmt = conn.prepareStatement(sql); 54 //执行sql; 55 rs = stmt.executeQuery(); 56 List<Contact> list = new ArrayList<Contact>(); 57 while(rs.next()){ 58 //创建Contact对象 59 Contact c = new Contact(); 60 c.setId(rs.getString("id")); 61 c.setName(rs.getString("name")); 62 c.setSex(rs.getString("sex")); 63 c.setAge(rs.getInt("age")); 64 c.setPhone(rs.getString("phone")); 65 c.setEmail(rs.getString("email")); 66 c.setQq(rs.getString("qq")); 67 list.add(c); 68 } 69 return list; 70 } catch (SQLException e) { 71 e.printStackTrace(); 72 throw new RuntimeException(); 73 }finally{ 74 JdbcUtil.close(conn, stmt, rs); 75 } 76} 7778//根据id删除数据 79public void delContact(String id) { 80 Connection conn; 81 PreparedStatement stmt = null; 82 ResultSet rs = null; 83 conn = JdbcUtil.getConnection(); 84 String sql = "delete from contact where id=?"; 85 try { 86 //执行预编译的sql语句(检查语法) 87 stmt = conn.prepareStatement(sql); 88 stmt.setString(1,id) 89 //发送参数,执行sql; 90 stmt.executeUpdate(); 91 } catch (SQLException e) { 92 e.printStackTrace(); 93 }finally{//关闭资源 94 JdbcUtil.close(conn, stmt, rs); 95 } 96} 9798//修改数据 99public void updateContact(Contact contact) {100 Connection conn;101 PreparedStatement stmt = null;102 ResultSet rs = null;103 conn = JdbcUtil.getConnection();104 String sql = "update contact set name=?,sex=?,age=?,phone=?,email=?,qq=? where id=?";105 try {106 //执行预编译的sql语句(检查语法)107 stmt=conn.prepareStatement(sql);108 stmt.setString(1, contact.getName());109 stmt.setString(2, contact.getSex());110 stmt.setInt(3, contact.getAge());111 stmt.setString(4, contact.getPhone());112 stmt.setString(5, contact.getEmail());113 stmt.setString(6, contact.getQq());114 stmt.setString(7, contact.getId());115 stmt.executeUpdate();116 } catch (SQLException e) {117 e.printStackTrace();118 }finally{119 JdbcUtil.close(conn, stmt, rs);120 }121}122 123//根据id查询数据(作用于修改数据的时候)124public Contact findById(String id) {125 Connection conn;126 PreparedStatement stmt = null;127 ResultSet rs = null;128 //获取连接129 conn = JdbcUtil.getConnection();130 String sql = "select * from contact where id=?"; 131 try {132 //执行预编译的sql语句(检查语法)133 stmt = conn.prepareStatement(sql);134 stmt.setString(1, id);135 rs = stmt.executeQuery();136 Contact c = null;137 while(rs.next()){138 //创建Contact对象139 c = new Contact();140 c.setId(rs.getString("id"));141 c.setName(rs.getString("name"));142 c.setSex(rs.getString("sex"));143 c.setAge(rs.getInt("age"));144 c.setPhone(rs.getString("phone"));145 c.setEmail(rs.getString("email"));146 c.setQq(rs.getString("qq"));147 }148 return c;149 } catch (SQLException e) {150 e.printStackTrace();151 throw new RuntimeException();152 }finally{153 JdbcUtil.close(conn, stmt, rs);154 }155}156157//判断账号昵称是否重复,若重复,页面端显示此账号已存在,请重新取名158public boolean checkContact(String name) {159 Connection conn;160 PreparedStatement stmt = null;161 ResultSet rs = null;162 //获取数据库的连接163 conn = JdbcUtil.getConnection();164 //准备sql165 String sql = "select * from contact where name = ?";166 try {167 //执行预编译的sql语句(检查语法)168 stmt = conn.prepareStatement(sql);169 //设置参数170 stmt.setString(1, name);171 //发送参数,执行sql172 rs = stmt.executeQuery();173 if(rs.next()){174 return true; 175 }else{176 return false;177 }178 } catch (SQLException e) {179 e.printStackTrace();180 throw new RuntimeException();181 }finally{//关闭资源182 JdbcUtil.close(conn, stmt, rs);183 }184}185 }

完整的JDBC封装过程,及调用jdbc的使用过程实例

db.properties 配置文件(配置了数据库的驱动、入口连接、用户名、密码),主要作用:方便以后修改

1 jdbcDriver=com.mysql.jdbc.Driver2 url=jdbc:mysql://localhost:3306/school3 userName=root4 passWord=123456

JdbcUtils类,把不变动的、且每次都使用到的那部分代码封装起来

1 package com.shore.utils; 2 3 import java.io.InputStream; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 import java.util.Properties;10 11 /**12 * @author DSHORE/-5-2913 *14 */15 public class JdbcUtils {16//静态代码块执行后,这几个参数,就有值了17private static String jdbcDriver = "";18private static String url = "";19private static String userName = "";20private static String passWord = "";21 22private JdbcUtils() {23}24 25static {//静态代码块26 try {27 //读取配置文件db.properties,用于获取数据库的入口连接url、用户名、密码,以及数据库的驱动28 InputStream inputStream = JdbcUtils.class.getResourceAsStream("/db.properties");29 Properties properties = new Properties();30 properties.load(inputStream);//加载文件31 inputStream.close();32 jdbcDriver = properties.getProperty("jdbcDriver");33 url = properties.getProperty("url");34 userName = properties.getProperty("userName");35 passWord = properties.getProperty("passWord");36 Class.forName(jdbcDriver); //注册驱动37 } catch (Exception e) {38 e.printStackTrace();39 }40}41 42//获取连接43public static Connection getConnection() throws SQLException {44 return DriverManager.getConnection(url, userName, passWord);45}46 47//关闭资源(比较严谨的写法)48public static void close(Connection connection, Statement statement,ResultSet resultSet) {49 if (resultSet != null) {50 try {51 resultSet.close();52 } catch (SQLException e) {53 e.printStackTrace();54 }finally{55 if (statement != null) {56 try {57statement.close();58 } catch (SQLException e) {59e.printStackTrace();60 }finally{61if (connection != null) {62 try {63 connection.close();64 } catch (SQLException e) {65 e.printStackTrace();66 }67}68 }69 }70 }71 }72}73 }

↑此处封装已完成。

下面用个简单的例子来演示怎么使用:

1 package com.shore.test; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import org.junit.Test; 9 10 import com.shore.utils.JdbcUtils;11 12 /**13 * @author DSHORE/-5-2914 *15 */16 public class jdbcTest {17 18@Test19public void testInsert(){20 Connection connection = null;21 PreparedStatement preparedStatement = null;22 ResultSet resultSet = null;23 try {24 //1.获取连接25 connection = JdbcUtils.getConnection();26 //2.准备预编译的sql27 String sql = "insert into teacher(sname,sex) values(?,?);";//?表示一个参数的占位符28 //3.执行预编译的sql语句(检查语法)29 preparedStatement = connection.prepareStatement(sql);30 //4.设置参数31 preparedStatement.setString(1,"赵六"); //可用name作为参数代表“赵六” 从页面传值来此32 preparedStatement.setString(2,"女");33 //5.发送参数,执行sql34 int count = preparedStatement.executeUpdate();35 System.out.println("影响了"+count+"行");36 } catch (SQLException e) {37 e.printStackTrace();38 }finally{39 JdbcUtils.close(connection, preparedStatement, resultSet);40 } 41}42 }

运行后,结果图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。