更新

/**

* @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相关推荐

  1. 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL

    上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲.平易近人,于是隔天小王又微信我说:"二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 连接 MyS ...

  2. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...

  3. 在Java项目中整合Scala

    Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...

  4. Java代码中,如何监控Mysql的binlog?

    最近在工作中,遇到了这样一个业务场景,我们需要关注一个业务系统数据库中某几张表的数据,当数据发生新增或修改时,将它同步到另一个业务系统数据库中的表中. 一提到数据库的同步,估计大家第一时间想到的就是基 ...

  5. 如何在Java项目中查找未使用/无效的代码

    本文翻译自:How to find unused/dead code in java projects What tools do you use to find unused/dead code i ...

  6. jfinal 普通java工程_JFinal getModel方法如何在java项目中使用

    JFinal getModel方法如何在java项目中使用 发布时间:2020-11-17 15:11:27 来源:亿速云 阅读:94 作者:Leah 今天就跟大家聊聊有关JFinal getMode ...

  7. 在java中使用JDBC连接mysql数据库时的服务器时区值无法识别或表示多个时区的问题解决方案

    项目场景: 在java中使用JDBC连接mysql数据库时,报以下的错:Exception in thread "main" java.sql.SQLException: The ...

  8. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  9. Java项目中使用spring (annotation)

    本文使用的项目和 java 项目中使用 sping (XML) 文章所使用的项目完全一样,annotation 相比于 XML 方式配置要更加方便快捷. 但是 XML 方式没有侵入性, 更加符合 sp ...

最新文章

  1. Kendo UI开发教程(23): 单页面应用(一)概述
  2. 牛顿法python代码_python 牛顿法实现逻辑回归(Logistic Regression)
  3. 信息学奥赛一本通 1137:加密的病历单 | OpenJudge NOI 1.7 12
  4. 米斯特白帽培训讲义(v2)漏洞篇 文件上传
  5. iPhone 14屏幕细节曝光:LTPO OLED面板仍为Pro版专属
  6. CorePlot-饼状体
  7. Operating System-Thread(3)用户空间和内核空间实现线程
  8. Junit Eclemma Eclipse
  9. archlinux安装windows字体
  10. 启动SQL Server服务器以及新建连接的方法
  11. J2EE框架技术(SpringMVC) 知识点笔记(2)
  12. 选择电子名片的优势及电子名片适用的行业,你知多少?
  13. 今日GitHub热榜第一:最全中华古诗词数据库,收录30多万诗词
  14. 软件测试用例设计 (一)等价类划分法
  15. 【渝粤教育】电大中专门店销售与服务技巧 (3)作业 题库
  16. OpenCV图像拼接和图像融合技术
  17. MySQL 查看和终止正在运行的连接线程
  18. 软件定义的网络(下)
  19. 运维日常之机房浪潮服务器硬盘红灯亮起,服务器一直响,raid磁盘红色。。。故障解决方法...
  20. 认识VF--Visual FoxPro 漫谈

热门文章

  1. mysql数据库是下面哪种类型的数据库_SQL数据库 选择哪个类型的数据库?
  2. pid和linux的关系,linux – bash pid和$$之间的区别
  3. 报错,ERROR 2572 --- [MessageBroker-2] o.h.engine.jdbc.spi.SqlExceptionHelper : Column ‘create_by‘
  4. 在Ubuntu上运行C++程序
  5. 安卓学习笔记43:初试开源框架Volley
  6. 10.傅里叶变换——更正式的傅里叶变换,频谱,局限性,离散傅里叶变换_4
  7. 3.过滤——简单移动平均线概念(SMA)、SMA的假设、加权移动平均线概念(WMA)_1
  8. 常见的linux系统故障,linux常见的系统故障排除
  9. c++指定在某一线程运行_深入理解Java虚拟机-运行时数据区
  10. W10系统配置java环境变量