我是靠谱客的博主 冷傲铃铛,最近开发中收集的这篇文章主要介绍intellij mysql jdbc_intellij idea java项目中通过JDBC链接mysql,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

更新

/**

* @author Marlon

* @date 2018/2/1

*

* JDBC操作数据库的步骤

* 1.注册驱动

* 告知JVM使用的是哪一个数据库的驱动

* 2.获得连接

* 使用JDBC中的类,完成对MySQL数据库的连接

* 3.获得语句执行平台

* 通过连接对象获取对SQL语句的执行者对象

* 4.执行sql语句

* 使用执行者对象,向数据库执行SQL语句

* 获取到数据库的执行后的结果

* 5.处理结果

* 6.释放资源 一堆close()

*/

public class JDBCDemo {

private static final String DRIVER = "com.mysql.jdbc.Driver";

//url: 数据库地址 jdbc:mysql://连接主机IP:端口号//数据库名字

private static final String URL = "jdbc:mysql://localhost:3306/day28";

private static final String USERNAME="root";

private static final String PASSWORD="root1234";

public static void main(String[] args) throws ClassNotFoundException, SQLException {

//1.注册驱动 反射技术,将驱动类加入到内容

// 使用java.sql.DriverManager类静态方法 registerDriver(Driver driver)

// Diver是一个接口,参数传递,MySQL驱动程序中的实现类

//DriverManager.registerDriver(new Driver());

//驱动类源代码,注册2次驱动程序

Class.forName(DRIVER);

//2.获得数据库连接 DriverManager类中静态方法

//static Connection getConnection(String url, String user, String password)

//返回值是Connection接口的实现类,在mysql驱动程序

//url: 数据库地址 jdbc:mysql://连接主机IP:端口号//数据库名字

Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);

//3.获得语句执行平台, 通过数据库连接对象,获取到SQL语句的执行者对象

// con对象调用方法 Statement createStatement() 获取Statement对象,将SQL语句发送到数据库

// 返回值是 Statement接口的实现类对象,,在mysql驱动程序

Statement stat = con.createStatement();

// 4.执行sql语句

// 通过执行者对象调用方法执行SQL语句,获取结果

// int executeUpdate(String sql) 执行数据库中的SQL语句, insert delete update

// 返回值int,操作成功数据表多少行

int row = stat.executeUpdate

("INSERT INTO student(sname,sage,score,classroom) VALUES('小龙',28,99,'32期6班')");

System.out.println(row);

//6.释放资源 一堆close()

stat.close();

con.close();

}

查询

/*

* JDBC技术,查询数据表,获取结果集

*/

public class JDBCDemo1 {

public static void main(String[] args) throws Exception{

//1. 注册驱动

Class.forName("com.mysql.jdbc.Driver");

//2. 获取连接对象

String url = "jdbc:mysql://localhost:3306/mybase";

String username="root";

String password="123";

Connection con = DriverManager.getConnection(url, username, password);

//3 .获取执行SQL 语句对象

Statement stat = con.createStatement();

// 拼写查询的SQL

String sql = "SELECT * FROM sort";

//4. 调用执行者对象方法,执行SQL语句获取结果集

// ResultSet executeQuery(String sql) 执行SQL语句中的select查询

// 返回值ResultSet接口的实现类对象,实现类在mysql驱动中

ResultSet rs = stat.executeQuery(sql);

//5 .处理结果集

// ResultSet接口方法 boolean next() 返回true,有结果集,返回false没有结果集

while(rs.next()){

//获取每列数据,使用是ResultSet接口的方法 getXX方法参数中,建议写String列名

System.out.println(rs.getInt("sid")+" "+rs.getString("sname")+

" "+rs.getDouble("sprice")+" "+rs.getString("sdesc"));

}

rs.close();

stat.close();

con.close();

}

}

密码注入:

/*

* Java程序实现用户登录,用户名和密码,数据库检查

* 演示被别人注入攻击

-- 登录查询

SELECT * FROM users WHERE username='dsfsdfd' AND PASSWORD='wrethiyu'1

OR 1=1

SELECT * FROM users WHERE username='a' AND PASSWORD='1'OR'1=1'

*/

public class JDBCDemo2 {

public static void main(String[] args)throws Exception {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/mybase";

String username = "root";

String password = "123";

Connection con = DriverManager.getConnection(url, username, password);

Statement stat = con.createStatement();

Scanner sc = new Scanner(System.in);

String user = sc.nextLine();

String pass = sc.nextLine();

//执行SQL语句,数据表,查询用户名和密码,如果存在,登录成功,不存在登录失败

String sql = "SELECT * FROM users WHERE username='"+user+"' AND PASSWORD='"+pass+"'";

System.out.println(sql);

ResultSet rs = stat.executeQuery(sql);

while(rs.next()){

System.out.println(rs.getString("username")+" "+rs.getString("password"));

}

rs.close();

stat.close();

con.close();

}

}

防止注入攻击

/*

* Java程序实现用户登录,用户名和密码,数据库检查

* 防止注入攻击

* Statement接口实现类,作用执行SQL语句,返回结果集

* 有一个子接口PreparedStatement (SQL预编译存储,多次高效的执行SQL)

* PreparedStatement的实现类数据库的驱动中,如何获取接口的实现类

*

* 是Connection数据库连接对象的方法

* PreparedStatement prepareStatement(String sql)

*/

public class JDBCDemo3 {

public static void main(String[] args)throws Exception {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/mybase";

String username = "root";

String password = "123";

Connection con = DriverManager.getConnection(url, username, password);

Scanner sc = new Scanner(System.in);

String user = sc.nextLine();

String pass = sc.nextLine();

//执行SQL语句,数据表,查询用户名和密码,如果存在,登录成功,不存在登录失败

String sql = "SELECT * FROM users WHERE username=? AND PASSWORD=?";

//调用Connection接口的方法prepareStatement,获取PrepareStatement接口的实现类

//方法中参数,SQL语句中的参数全部采用问号占位符

PreparedStatement pst = con.prepareStatement(sql);

System.out.println(pst);

//调用pst对象set方法,设置问号占位符上的参数

pst.setObject(1, user);

pst.setObject(2, pass);

//调用方法,执行SQL,获取结果集

ResultSet rs = pst.executeQuery();

while(rs.next()){

System.out.println(rs.getString("username")+" "+rs.getString("password"));

}

rs.close();

pst.close();

con.close();

}

}

/*

* 使用PrepareStatement接口,实现数据表的更新操作

*/

public class JDBCDemo {

public static void main(String[] args) throws Exception{

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/mybase";

String username="root";

String password="123";

Connection con = DriverManager.getConnection(url, username, password);

//拼写修改的SQL语句,参数采用?占位

String sql = "UPDATE sort SET sname=?,sprice=? WHERE sid=?";

//调用数据库连接对象con的方法prepareStatement获取SQL语句的预编译对象

PreparedStatement pst = con.prepareStatement(sql);

//调用pst的方法setXXX设置?占位

pst.setObject(1, "汽车美容");

pst.setObject(2, 49988);

pst.setObject(3, 7);

//调用pst方法执行SQL语句

pst.executeUpdate();

pst.close();

con.close();

}

}

/*

* PrepareStatement接口实现数据表的查询操作

*/

public class JDBCDemo1 {

public static void main(String[] args) throws Exception{

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/mybase";

String username="root";

String password="123";

Connection con = DriverManager.getConnection(url, username, password);

String sql = "SELECT * FROM sort";

PreparedStatement pst = con.prepareStatement(sql);

//调用pst对象的方法,执行查询语句,Select

ResultSet rs=pst.executeQuery();

while(rs.next()){

System.out.println(rs.getString("sid")+" "+rs.getString("sname")+" "+rs.getString("sprice")+" "+rs.getString("sdesc"));

}

rs.close();

pst.close();

con.close();

}

}

最后

以上就是冷傲铃铛为你收集整理的intellij mysql jdbc_intellij idea java项目中通过JDBC链接mysql的全部内容,希望文章能够帮你解决intellij mysql jdbc_intellij idea java项目中通过JDBC链接mysql所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部