上一篇文章给大家写了jdbc的基本的知识。本章会进行详细讲解JDBC的使用。
下面展示一些 需求: 参考以上代码,可以进行SQL语句修改即可。 参考以上代码,可以进行SQL语句修改即可。 代码实现: 运行结果: 用户名和密码—–用户提交的数据 SQL关键字:or and # – 等 1、可以使用正则表达式进行校验参数 2、使用PreparedStatement对象替换Statement 先把SQL骨架发送给服务器。 只要SQL一旦被编译,确定下来。 修改上面案例 运行结果分析: 直接上操作: 有不懂的地方可以留言哈,给解决。 测试结果: 感谢查看。更多的请关注,谢谢。后续继续更新。 老铁,关注一波666JDBC+连接池–值得一看
JDBC的使用增删改查操作
JDBC工具类的封装
内联代码片
。package cn.tedu.util; /** * @author 作者: bjzhangjian * @version 创建时间:2020年5月7日 上午10:14:03 * @description 描述:jdbc的工具类 */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtil { /** * 数据库的连接 */ public static Connection getConnection() { //1、注册数据库的驱动 try { Class.forName("com.mysql.jdbc.Driver"); //2、获取数据库的连接 String url = "jdbc:mysql:///dd_db?characterEncoding=utf-8"; String user = "root";//用户名和密码是你数据库连接的时候的用户名和密码 String password = "root"; Connection connection = DriverManager.getConnection(url, user, password); return connection; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 释放资源 * @param connection 连接对象 * @param st 传输器对象 * @param rs 结果集对象 */ public static void close(Connection connection, Statement st, ResultSet rs) { //6、释放资源 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { rs = null; } } if (st != null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { st = null; } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } finally { connection = null; } } } }
JDBC实现新增数据-插入-insert
新增一条数据:郭泽平 qwer123 qwer123@163.com 13100006666@Test public void testInsert() { Connection conn = null; Statement st = null; ResultSet rs = null; try { //获取数据库的连接 conn = JDBCUtil.getConnection(); //获取传输器对象 st = conn.createStatement(); //时间的转化 // Date date = new Date(); int rows = st.executeUpdate("insert into user values(null,'郭泽平','qwer123','2020-5-7 10:34:00','qwer123@163.com','13100006666')"); // System.out.println("受影响的行数:" + rows); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { JDBCUtil.close(conn, st, rs); } }
JDBC实现修改数据-更新–update
@Test public void testUpdate() { Connection conn = null; Statement st = null; ResultSet rs = null; try { //获取数据库的连接 conn = JDBCUtil.getConnection(); //获取传输器对象 st = conn.createStatement(); int rows = st.executeUpdate("update user set password='asd123' where username='张老师';"); // System.out.println("受影响的行数:" + rows); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { JDBCUtil.close(conn, st, rs); } }
JDBC实现删除数据-删除—delete
JDBC实现查询数据-查询—select
select *from user where username='苍老师';
案例:实现用户登录
1、提示用户名和密码的输入
2、根据输入的用户名和密码,去到数据库中访问并且进行匹配,查询出指定用户名和密码是否正确
3、如果数据库中能够查询到用户,并且密码也是正确的,那就可以进行登录
4、否则,登录失败。public class LoginUser { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String username = sc.nextLine(); System.out.println("请输入密码:"); String password = sc.nextLine(); //模拟用户登录 login(username, password); sc.close(); } /**模拟用户进行登录的实现逻辑-----11:05*/ private static void login(String username, String password) { Connection conn = null; Statement st = null; ResultSet rs = null; try { //获取数据库的连接 conn = JDBCUtil.getConnection(); //获取传输器对象 st = conn.createStatement(); rs = st.executeQuery("select * from user where username = '" + username + "' and password = '" + password + "'"); if (rs.next()) { System.out.println("用户登录success"); }else { System.out.println("登录失败。用户名或者密码错误。"); } } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtil.close(conn, st, rs); } }
但是注意会出现问题:
原因:产生了SQL注入攻击。案例:登录更新—-防止SQL注入攻击
/**模拟用户进行登录的实现逻辑----*/ private static void login(String username, String password) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { //获取数据库的连接 conn = JDBCUtil.getConnection(); //获取传输器对象 String sql = "select * from user where username=? and password=?"; ps = conn.prepareStatement(sql); //设置参数: ps.setString(1, username); ps.setString(2, password); rs = ps.executeQuery();//注意:不要传SQL if (rs.next()) { System.out.println("用户登录success"); }else { System.out.println("登录失败。用户名或者密码错误。"); } } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtil.close(conn, ps, rs); } }
数据库连接池—C3P0
新建文件:根目录src下即可。
导入C3P0的jar包/**模拟用户进行登录的实现逻辑-----11:05*/ private static void login(String username, String password) { Connection conn = null; Statement st = null; ResultSet rs = null; //连接池对象 ComboPooledDataSource pool = new ComboPooledDataSource(); try { //获取数据库的连接 //conn = JDBCUtil.getConnection(); conn = pool.getConnection(); //获取传输器对象 st = conn.createStatement(); rs = st.executeQuery("select * from user where username = '" + username + "' and password = '" + password + "'"); if (rs.next()) { System.out.println("用户登录success"); }else { System.out.println("登录失败。用户名或者密码错误。"); } } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtil.close(conn, st, rs); } }
完美运行。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算