通过JDBK操作数据库
一、配置程序——让我们程序能找到数据库的驱动jar包
1.把.jar文件复制到项目中去,整合的时候方便。
2.在eclipse项目右击“构建路径”--“配置构建路径”--“库”--“添加外部jar”--找到数据库的驱动jar包--点击确定。会在左侧包资源管理器中出现“引用的库”,在里面就能找到我们刚才导入的jar包。
二、与数据库建立连接
1.加载数据访问驱动
2.连接到数据库
建立与MySQL数据库的连接:
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
Connection conn = DriverManager.getConnectio ("jdbc:mysql://127.0.0.1:3306/mydb","账号","密码");
Statement state = conn.createStatement();//建立数据库连接,获得连接对象conn;
建立与SQL Server数据库的连接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载数据库驱动
Connection conn = DriverManager.getConnectio ("jdbc:sqlsever://127.0.0.1:1433/DatabaseName=mydb","账号","密码");//建立数据库连接,获得连接对象conn;
其中mydb是表名。
三、查询、插入、修改、删除数据库中的数据
建立表login

1.查询数据
1.1使用Statement接口制作一个登录验证
package com.itnba.maya.login;
import java.sql.*;
import java.util.*;
public class Test {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String zhang = sc.nextLine();
String pas = sc.nextLine();
Class.forName("com.mysql.jdbc.Driver");
Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding=GBK", "root", "");//括号里面不能用空格
Statement state = conn.createStatement();
String sql = "select * from login where zhanghao='"+zhang+"' and password = '"+pas+"'";
ResultSet rs = state.executeQuery(sql);//获得一个查询结果集。
Boolean ok = rs.next();
if(ok)
{
System.out.println("恭喜您"+rs.getString(3)+"登录成功");
}
else
{
System.out.println("您输入的账号密码有误");
}
conn.close();
}
}
账号密码输入正确时:输入 zhangsan zhangsan 出现 “恭喜您张三登录成功”
账号密码输入错误时:输入 zhangsan lisi 出现“您输入的账号密码有误”
但是上述方法会有“注入”问题出现,如输入 asdf' or 1=1 #会出现登录成功。输入中的单引号会和前面的单引号形成配对,而#会注释掉后面的语句,1=1随时成立,就会出现登录成功。
1.2使用PreparedStatement接口制作一个登录验证
public class Test {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String zhang = sc.nextLine();
String pas = sc.nextLine();
Class.forName("com.mysql.jdbc.Driver");
Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding = GBK", "root", "");
String sql = "select * from login where zhanghao=? and password =?";
PreparedStatement state = conn.prepareStatement(sql);
state.setString(1, zhang);
state.setString(2,pas);
ResultSet rs = state.executeQuery();
Boolean ok = rs.next();
if(ok)
{
System.out.println("恭喜您"+rs.getString(3)+"登录成功");
}
else
{
System.out.println("您输入的账号密码有误");
}
conn.close();
}
账号密码输入正确时:输入 zhangsan zhangsan 出现 “恭喜您张三登录成功”
账号密码输入错误时:输入 zhangsan lisi 出现“您输入的账号密码有误”
此种方式不会出现“注入” 问题。
2.向数据库中插入数据
2.1使用Statement接口插入数据
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String zhang = sc.nextLine();
String pas = sc.nextLine();
Class.forName("com.mysql.jdbc.Driver");
Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding = GBK", "root", "");
Statement state = conn.createStatement();
String sql = "insert into wang (zhanghao,password,name) values('zhangyu','zhangyu','张宇')";
state.executeUpdate(sql);//插入 删除 更新数据时用update
conn.close();
}
运行结果:

2.2使用PreparedStatement接口插入数据
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding=GBK", "root", "");
String sql ="insert into login (zhanghao,password,name) values(?,?,?)";
PreparedStatement state = conn.prepareStatement(sql);
state.setString(1, "zhangyu");
state.setString(2,"zhangyu");
state.setString(3,"张宇");
state.executeUpdate();
conn.close();
}
运行结果:

通过JDBK操作数据库的更多相关文章
- Java-jdbc操作数据库
如果需要访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载一次.然后在每次访问数据库时创建一个Connection实例,获取数据连接,这样就可以执行操作数据库的SQL语句.最后在 ...
- python高级之操作数据库
python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...
- greenDao:操作数据库的开源框架
greenDAO: Android ORM for your SQLite database 1. greenDao库获取 英文标题借鉴的是greendrobot官网介绍greenDao时给出的Tit ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- greendao操作数据库的使用方法
第一步:把greendao-1.3.0-beta-1,greendao-generator-1.3.1两个jar包加载到工程的lib的文件夹中,一定要右键点击Add As Library后才能使用. ...
- pymysql 操作数据库
一.简介 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但目前pymysql支持python3.x而后者不支持3.x版本 其执行语句与sql源码相似 二.使用 ...
- Asp.Net MVC 自定义的MVC框架(非EF操作数据库)
一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...
- 一次莽撞的行为:在phpmyadmin中修改MySQL root密码后无法操作数据库
一.手贱行为(✿◡‿◡) 在一次开发中通过xampp方式安装了PHP环境,需要操作数据库时通过phpmyadmin访问MySQL,在一次数据库操作时想起没有设置密码,于是直接在mysql数据库中的us ...
- python操作数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
随机推荐
- MATLAB地图工具箱学习总结(四)自定义投影
MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...
- 双十一 VS 火车票(12306)
火车票开售了,又是一年,code了一年,咱们也该回顾回顾了. 还记得12306上线之初各种技术大牛给人家出方案,吐槽人家外包费用?我们来回顾回顾. 就园子里都过千篇文章来侃这事儿,请问有多少主题的文章 ...
- C# 文件及文件夹深度复制
完善了下 文件中的文件及文件夹中的复制!如果有更优解决方案请不吝指教 protected void FileDepthCopy(string source, string target){ if (D ...
- G将军的敢死队——树状DP
当前节点的两种情况: 1.beChoosed = {son.beAbandoned乘积} //当前节点选中的情况下,子节点都不能选 2.beAbandoned = {(son.beAbandoned ...
- js 时间格式化 代码
Date.prototype.Format = function (fmt) { //author: meizz var o = { &quo ...
- linux网卡混杂模式
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址.普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃.一般来说,混杂模式不会影响网卡的正常工作 ...
- 《开源安全运维平台:OSSIM最佳实践》内容简介
<开源安全运维平台:OSSIM最佳实践 > 李晨光 著 清华大学出版社出版 内 容 简 介在传统的异构网络环境中,运维人员往往利用各种复杂的监管工具来管理网络,由于缺乏一种集成安全运维平台 ...
- nginx 域名绑定端
server { listen 80; server_name taqing.me www.taqing.me; ##,绑定域名 location / { proxy_pass http://127. ...
- Centos下Yum安装PHP5.5,5.6,7.0
默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们 ...
- ArcGIS创建tpk切片缓存
一. 背景知识 1. tpk是什么? 从地图或底图生成切片,并将切片进行打包从而创建单个压缩的 .tpk 文件.切片包(.tpk)是在地图或栅格数据集中能作为 Web 切片或 Web 高程图层发布的一 ...