网站首页 >> 美食攻略 >> 正文
简介: 告知JVM使用的是哪一个数据库的驱动使用JDBC中的类,完成对MySQL数据库的连接通过连接对象获取对SQL语句的执行者对象使用执行者对象,向数据库执行SQL语句packagecom.oracle.d

mysql连接数据库(Java数据库的连接JDBC)

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

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

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

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

packagecom.oracle.demo01;\nimportjava.sql.Connection;\nimportjava.sql.DriverManager;\nimportjava.sql.SQLException;\nimportjava.sql.Statement;\npublicclassdemo01{\npublicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{\n//1.注册驱动.\n//告知JVM使用的是哪一个数据库的驱动\nClass.forName("com.mysql.jdbc.Driver");\n//2.获得连接.\n//使用JDBC中的类,完成对MySQL数据库的连接\nConnectionconn=DriverManager.getConnection\n("jdbc:mysql://localhost:3306/ceshi?characterEncoding=utf-8","root","123");\n//3.获得语句执行平台\n//通过连接对象获取对SQL语句的执行者对象\nStatementsta=conn.createStatement();\n//4.执行sql语句\n//使用执行者对象,向数据库执行SQL语句\n//获取到数据库的执行后的结果\nStringsql="insertintosort(sname)values('护手霜')";\nintrow=sta.executeUpdate(sql);\nSystem.out.println(row);\n//5.处理结果\n//6.释放资源(先开的后关)\n//调用一堆close() *** \nsta.close();\nconn.close();\n}\n}\n

再举一个例子:

packagecom.oracle.difficult;\n//插入数据\nimportjava.sql.Connection;\nimportjava.sql.DriverManager;\nimportjava.sql.SQLException;\nimportjava.sql.Statement;\npublicclassdemo01{\npublicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{\n//1、注册驱动、告知JVM使用的是哪一个数据库的驱动\n//异常ClassNotFoundException\nClass.forName("com.mysql.jdbc.Driver");\n//2、获得连接\n//导包\nStringurl="jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";//这里ceshi是数据库\nStringroot="root";\nStringpassword="123";\n//异常SQLException\n//DriverManager:管理一组JDBC驱动程序的基本服务\n//Connection:与特定数据库的连接\nConnectioncon=DriverManager.getConnection(url,root,password);\n//3.获得语句执行平台\n//创建一个Statement对象来将SQL语句发送到数据库\nStatementsta=con.createStatement();\n//4、执行sql语句\n//使用执行者对象/Statement对象/,向数据库执行SQL语句\n//写SQL语句;\nStringsql="insertintoceshi1(id,sname)values(10,'剑魂')";\n//intexecuteUpdate(Stringsql)\n//执行给定SQL语句,该语句可能为INSERT、UPDATE或DELETE语句,\n//或者不返回任何内容的SQL语句(如SQLDDL语句)如:CREATETABLE和DROPTABLE等。\nintrow=sta.executeUpdate(sql);\nSystem.out.println(row);\n//5、处理结果\n//执行insert、update、delete无需处理\n//6、释放资源(先开的后关,后开的先关)\n//调用一堆close() *** \nsta.close();\ncon.close();\n}\n}\n

需要处理结果集:

packagecom.oracle.difficult;\nimportjava.sql.Connection;\nimportjava.sql.DriverManager;\nimportjava.sql.ResultSet;\nimportjava.sql.SQLException;\nimportjava.sql.Statement;\npublicclassdemo03{\npublicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{\n//1、注册驱动\nClass.forName("com.mysql.jdbc.Driver");\n//2、获得连接\nStringurl="jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";\nStringroot="root";\nStringpassword="123";\nConnectioncon=DriverManager.getConnection(url,root,password);\n//3、获得语句执行平台\nStatementsta=con.createStatement();\n//4、执行sql语句\nStringsql="select*fromceshi1wheresname='狂战士'";\n//需要导包importjava.sql.ResultSet;\nResultSetrs=sta.executeQuery(sql);\n//5、处理结果\nwhile(rs.next()){\nSystem.out.println(rs.getString("id")+".."+rs.getString("sname"));\n}\n//6、释放资源\nrs.close();\nsta.close();\ncon.close();\n}\n}\n

2、数据库的连接

执行语句:ResultSetexecuteQuery(sql);

处理结果集:rs.next();rs.getXxx();

(2)预处理对象PreparedStatement:解决SQL注入问题

获得执行对象:prepareStatement(sql);

执行语句:setXxx(int,Obj);executeQuery();

释放资源:PreparedStatement.close();

packagecom.oracle.difficult;\nimportjava.sql.Connection;\nimportjava.sql.DriverManager;\nimportjava.sql.PreparedStatement;\nimportjava.sql.ResultSet;\nimportjava.sql.SQLException;\nimportjava.sql.Statement;\nimportjava.util.Scanner;\npublicclassdemo04{\npublicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{\n//1、注册驱动\nClass.forName("com.mysql.jdbc.Driver");\n//2、获得连接\nStringurl="jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";\nStringroot="root";\nStringpassword="123";\nConnectioncon=DriverManager.getConnection(url,root,password);\n\n//3、获得语句执行平台\nStatementsta=con.createStatement();\n//4、执行sql语句\nScannersc=newScanner(System.in);\nSystem.out.println("请输入用户名:");\nStringuser=sc.next();\nSystem.out.println("请输入密码:");\nStringpass=sc.next();\nStringsql="selectcount(*)fromuserwhereuname='"+user+"'"+"andpwd='"+pass+"'";\n//需要导包importjava.sql.ResultSet;\nResultSetrs=sta.executeQuery(sql);\n/*//3、获得语句执行平台(预处理对象,解决SQL注入问题)\nStringsql="selectcount(*)fromceshi1whereid=?andsname=?";\nPreparedStatementpast=con.prepareStatement(sql);\n//4、执行SQL语句\nScannersc=newScanner(System.in);\nSystem.out.println("请输入用户名:");\nintuser=sc.nextInt();\nSystem.out.println("请输入密码:");\nStringpass=sc.next();\npast.setInt(1,user);\npast.setString(2,pass);\nResultSetrs=past.executeQuery();*/\n//5、处理结果集\nintcount=0;\nwhile(rs.next()){\ncount=rs.getInt(1);\n}\nif(count>0){\nSystem.out.println("登录成功!!");\n}else{\nSystem.out.println("登录失败");\n}\n//6、释放资源\nrs.close();\nsta.close();\ncon.close();\n}\n}\n

SQL语句注入问题:

将注册驱动、获得连接和释放资源( *** 重载)封装起来;

网友点评

博博常识网

博博常识网

www.kissing2lips.com

日常生活里,经常会碰到一些五花八门的小困难。不过好久好在有困难就有方法,如果你足够的细心,你会发现这些小困难都有着对应的小方法。

Powered By Z-BlogPHP Theme By . 鲁ICP备2021032584号-5