下面展示一些 内联代码片
。
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;
}
}
}
}
需求:
新增一条数据:郭泽平 qwer123 [email protected] 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','[email protected]','13100006666')");
//
System.out.println("受影响的行数:" + rows);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JDBCUtil.close(conn, st, rs);
}
}
@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);
}
}
参考以上代码,可以进行SQL语句修改即可。
参考以上代码,可以进行SQL语句修改即可。
select *from user where username='苍老师';
代码实现:
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关键字:or and # – 等
1、可以使用正则表达式进行校验参数
2、使用PreparedStatement对象替换Statement
先把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);
}
}
运行结果分析:
直接上操作:
有不懂的地方可以留言哈,给解决。
新建文件:根目录src下即可。
/**模拟用户进行登录的实现逻辑-----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);
}
}
测试结果:
感谢查看。更多的请关注,谢谢。后续继续更新。
老铁,关注一波666