--编辑my.ini配置文件内容(mysql 8.0以上不需要,直接安装即可)[mysql]# 设置mysql客户端默认字符集default-character-t=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的安装目录badir=e:\mysql5.7.13\mysql-5.7.13-winx词牌名64# 设置mysql数据库的数据的存放目录datadir=e:\mysql5.7.13\mysql-5.7.13-winx64\data# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-t-rver=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=innodb# 安装好后, 免密码进入mysqlskip-grant-tables--用管理员身份运行cmd,输入命令//安装mysqlmysqld -install //安装成功后,初始化数据文件mysqld --initialize-incure --ur=mysql//进入mysql管理界面mysql -u root-p//修改密码update mysql.ur t password=password('新密码') where ur='root';//mysql8修改密码alter ur 'root'@'localhost' identified by '密码'
点击连接进行下载:(mysql驱动)
https://github.com/epochong/mysql-connector-java-8.0.16.git
下载后在idea目录下新建lib目录,将下载好的驱动移动到lib目录下,并右击点击添加为库,再次点击驱动文件,若能展开,则驱动安装成功。
连接过程若出现驱动问题,需要注意查看驱动是否添加为库,英文版(add as library),查看驱动版本的问题(下载驱动需要对应与数据库,例mysql下载mysql驱动,sql rver下载的是sql rver驱动,查看是否在同一包下,有时候不在同一包下会找不到驱动)。
package jdbc_exci;import java.sql.*;public class jdbc { public static void main(string[] args) throws sqlexception { try { class.forname("com.mysql.jdbc.driver"); string url = "jdbc:mysql://localhost:3306/student?uunicode=true&characterencoding=utf8&ussl=fal"; //通用模板:jdbc:数据库名字://地址:端口/实际使用数据库名称?附加参数 string urname = "root"; string password = "123456"; connection connection = drivermanager.getconnection(url,urname,password); statement statement = connection.createstatement(); //执行sql查询语句 string sql = "lect * from student"; resultt resultt = statement.executequery(sql); while (resultt.next()){ system.out.println("sno="+resultt.getobject("sno")); } resultt.clo(); statement.clo(); connection.clo(); } catch (classnotfoundexception e) { e.printstacktrace(); } }}
**附狂神教程中安全连接解决办法 **
jdbc:mysql://localhost:3306/student?uunicode=true&characterencoding=utf8&ussl=fal
若mysql版本高于驱动版本,则需要将安全连接置为fal;置为true会报错。
编写配置文件
--新建配置文件:db.properties--driver=com.mysql.jdbc.driverurl=jdbc:mysql://localhost:3306/student?uunicode=true&characterencoding=utf8&ussl=falurname=rootpassword=123456
封装工具类
package connect_jdbc.utils;import java.io.ioexception;import java.io.inputstream;import java.sql.*;import java.util.properties;public class jdbcutils { private static string driver = null;; private static string url =null; private static string urname = nnokia 800cull; private static string password = null; static { try{ //通过反射得到配置文件中的内容 inputstream in = jdbcutils.class.getclassloader().getresourceasstream("db.properties"); properties properties=new properties(); properties.load(in); driver = properties.getproperty("driver"); url = properties.getproperty("url"); urname = properties.getproperty("urname"); password = properties.getproperty("password"); //加载一次驱动 class.forname(driver); } catch (ioexception e) { e.printstacktrace(); } catch (classnotfoundexception e) { e.printstacktrace(); } } //获取连接 public static connection getconnection() throws sqlexception { return drivermanager.getconnection(url,urname,password); } //释放连接 public static void relea(connection conn, statement st, resultt rs){ if(rs!=null){ try { rs.clo(); } catch (sqlexception throwables) { throwables.printstacktrace(); } } if(st!=null){ try { st.clo(); } catch (sqlexception throwables) { throwables.printstacktrace(); } } if(conn!=null){ try { conn.clo(); } catch (sqlexception throwables) { throwables.printstacktrace(); } } }}
编写测试类执行sql语句
//执行executeupdate语句,实现增删改package connect_jdbc.utils;imphp中国ort java.sql.connection;import java.sql.resultt;import java.sql.sqlexception;import java.sql.statement;public class jdbctest { public static void main(string[] args) throws sqlexception { connection connection =null; statement st = null; resultt rs =null; try { connection = jdbcutils.getconnection(); } catch (sqlexception throwables) { throwables.printstacktrace(); } st = connection.createstatement(); string sql = "inrt into student (sno, sname, sx, sclass, stel, sgroup, spassword)" + "values (1907040136,'贺子奇','男','1900144','15735116626',3,'123456')"; int i = st.executeupdate(sql);//返回值为整型,表示有几行受影响 if(i>0){ system.out.println("插入成功山东医院排名!"); } jdbcutils.relea(connection,st,rs); }}
执行lect语句
//执行executequery语句,实现查找package connect_jdbc.utils;import java.sql.connection;import java.sql.resultt;import java.sql.sqlexception;import java.sql.statement;public class jdbclect { public static void main(string[] args) { connection connection = null; statement st = null; resultt res = null; try { connection = jdbcutils.getconnection(); st = connection.createstatement(); string sqls = "lect * from student"; res = st.executequery(sqls);//返回值为查找的结果集 while (res.next())//进行结果集的输出 { system.out.println(res.getobject("sno")+" "+res.getobject("sname")); } } catch (sqlexception throwables) { throwables.printstacktrace(); } jdbcutils.relea(connection,st,res); }}
问题描述:在使用statement函数执行sql操作时,当输入sql语句为:’ ‘or’1=1’或者’ ‘or’values>0’时则会发生恒等于从而绕过查询语句,会发生将结果集绕过密码查询出来,从而形成安全威胁。
解决办法
将原先的statement函数改用preparedstatement函数,避免了sql注入,查询效率更高。
示例:
package connect_jdbc.utils;import java.sql.connection;import java.sql.preparedstatement;import java.sql.resultt;import java.sql.sqlexception;public class jdbctest { public static void main(string[] args) { connection connection =null; preparedstatement statement = null; resultt res = null; try { connection = jdbcutils.getconnection(); //与statement的区别,要使用?占位符代替参数,进行一次预编译 string sql = "inrt into student (sno, sname, sx, sclass, stel, sgroup, spassword)" + "values (?,?,?,?,?,?,?)"; //手动给每一个参数(?)赋值 statement=connection.preparestatement(sql); statement.tstring(1,"1907040124"); statement.tstring(2,"薛晓军"); statement.tstring(3,"男"); statement.tstring(4,"19070144"); statement.tstring(5,"15735116626"); statement.tstring(6,"3"); statement.tstring(7,"123456");//执行 int i = statement.executeupdate(); if(i>0) { system.out.println("插入成功!"); 山城是哪个城市 } } catch (sqlexception throwables) { throwables.printstacktrace(); } jdbcutils.relea(connection,statement,res); }}
到此这篇关于mysql安装与idea的连接实现的文章就介绍到这了,更多相关mysql安装与idea连接内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 10:24:07,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8be2abc8d9a98da090607036e9bfe974.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:MySQL安装与idea的连接实现.doc
本文 PDF 下载地址:MySQL安装与idea的连接实现.pdf
留言与评论(共有 0 条评论) |