JDBC 1 利用Statement对数据库进行增删改查
准备工作
1新建po类:User
private int id;
private String name;
private String pwd;
set,get方法省略
2 新建UserDao类,存放增删改查的相关方法,并且定义链接数据库的相关性信息(链接地址,用户名,密码);
![](https://common.cnblogs.com/images/copycode.gif)
public class UserDao {
private static String jdbcDriver = "com.mysql.jdbc.Driver";
private static String jdbcUrl="jdbc:mysql://localhost:3306/homework";
private static String jdbcuser="root";
private static String jdbcpwd="123";
public boolean ChaRu(User user){ //插入数据
boolean flag=true; return flag;
}
public boolean XiuGai(User user){ //修改数据
boolean flag=true; return flag;
}
public boolean ShanChu(int id){ //删除数据
boolean flag=true; return flag;
}
public List<User> ChanZhao(){ // 查找数据
List<User> list= new ArrayList<User>();
return list;
} }
![](https://common.cnblogs.com/images/copycode.gif)
3 在数据库中创建表user,表中设置,id int
name varchar(20)
pwd varchar(20)
1 插入数据
在进行增删改查操作结束之后,一定要关闭conn,st,rs(仅查找时用到此对象)对象。
![](https://common.cnblogs.com/images/copycode.gif)
public boolean ChaRu(User user){
boolean flag=true;
Connection conn= null;
Statement st=null;
String sql="insert into user(name,pwd) values('"+user.getName()+"','"+user.getPwd()+"')"; //插入数据的SQL语句
try {
Class.forName(jdbcDriver); // 加载驱动器
conn=DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd); // 驱动利用驱动地址,数据库用户名,密码创建连接
st=conn.createStatement(); // 连接创建数据库操作对象,Statement是执行数据库的重要方法
int i=st.executeUpdate(sql); // Statement 对象利用executeUpdate()方法执行sql。
if(i==0){
flag=false; // 后面测试用到flag变量,前面执行sql语句,如果成功i不为0,true代表执行成功,false代表失败。
} } catch (ClassNotFoundException e) { //加载驱动器失败异常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) { //创建链接失败异常
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){ // 最后关闭连接
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){ //关闭Statement
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return flag; // 返回flag
}
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
public static void main(String[] args) {
User user=new User(); //初始化 User类 对象user可以调用set,get方法设置或者获得数据。
UserDao userDao = new UserDao(); //初始化UserDao 类,可以调用增删改差的各种方法。
user.setName("lbzz"); // 设置姓名
user.setPwd("123"); // 设置密码
boolean flag=userDao.ChaRu(user); //执行插入操作,返回值赋给flag
if(flag){ //根据flag判断执行是否成功。
System.out.println("插入成功");
}else{
System.out.println("插入失败");
} }
![](https://common.cnblogs.com/images/copycode.gif)
2 修改数据
![](https://common.cnblogs.com/images/copycode.gif)
public boolean XiuGai(User user){
boolean flag=true;
Connection conn= null;
Statement st= null;
String sql= "update user set pwd='"+user.getPwd()+"' where name='"+user.getName()+"'";
System.out.println(sql);
try {
Class.forName(jdbcDriver);
conn=DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd);
st=conn.createStatement();
int i=st.executeUpdate(sql);
if(i==0){
flag=false;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
} return flag;
}
![](https://common.cnblogs.com/images/copycode.gif)
测试
![](https://common.cnblogs.com/images/copycode.gif)
public static void main(String[] args) {
User user= new User();
UserDao userDao= new UserDao();
user.setName("lbzz");
user.setPwd("lbzz");
boolean flag=userDao.XiuGai(user);
if(flag){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
}
![](https://common.cnblogs.com/images/copycode.gif)
3 删除记录
![](https://common.cnblogs.com/images/copycode.gif)
public boolean ShanChu(int id){
boolean flag=true;
Connection conn= null;
Statement st= null;
String sql="delete from user where id="+id;
try {
Class.forName(jdbcDriver);
conn=DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd);
st=conn.createStatement();
int i=st.executeUpdate(sql);
if(i==0){
flag=false;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} return flag;
}
![](https://common.cnblogs.com/images/copycode.gif)
测试
![](https://common.cnblogs.com/images/copycode.gif)
public static void main(String[] args) {
UserDao userDao = new UserDao();
boolean flag= userDao.ShanChu(1);
if(flag){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
![](https://common.cnblogs.com/images/copycode.gif)
4 查找数据
前面增删改,程序除了sql语句不同外,其余相差无几,查找与前三个程序略有不同。
![](https://common.cnblogs.com/images/copycode.gif)
public List<User> ChanZhao(){ // 查询出来的数据不止一条,所以使用集合
List<User> list= new ArrayList<User>(); // 对集合进行初始化
Connection conn= null;
Statement st=null;
ResultSet rs=null; // ResultSet 返回的是一个结果集
String sql="select * from user";
try {
Class.forName(jdbcDriver);
conn= DriverManager.getConnection(jdbcUrl, jdbcuser, jdbcpwd);
st=conn.createStatement();
rs=st.executeQuery(sql); // 查询时使用 executeQuery()方法
while(rs.next()){ // 对结果集进行遍历
User user = new User();
user.setName(rs.getString("name")); // 需要查询什么就要像这样设置什么
list.add(user); //添加到集合
} } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
关闭conn,st,rs
}
return list; //返回list
}
![](https://common.cnblogs.com/images/copycode.gif)
测试
![](https://common.cnblogs.com/images/copycode.gif)
public static void main(String[] args) {
UserDao userDao = new UserDao();
List<User> list=userDao.ChanZhao();
for(User user:list){
System.out.println(user.getName());
}
}
![](https://common.cnblogs.com/images/copycode.gif)
JDBC 1 利用Statement对数据库进行增删改查的更多相关文章
- Java数据库连接——JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- JDBC 3 通过PreparedStatement 对数据库进行增删改查
下面程序沿用上面的封装. 1 插入数据 public boolean ChaRu3(User user){ boolean flag=true; Connection conn=null; Prepa ...
- 通过jdbc连接MySql数据库的增删改查操作
一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)
最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类) 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据 ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- 利用API方式进行数据库的增删改查
/* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...
随机推荐
- vs2012编译cocos2dx 3.10报错解决方法
新建的一个cocos工程没有改过任何代码直接编译居然报错了? 百度了一下原来是因为vs2012不支持c++11的部分特性 cocos2dx 3.10正好就用到了vs2012不支持的那部分特性,所以报错 ...
- ajax与一般处理程序 HTTP协议交互
1,一般处理程序中 context.Response.ContentType = "text/plain", 则 ajax参数中 也是 text 类型. 2,一般处理程序中 转化 ...
- zabbix监控nginx的性能
1.nginx配置 需要使用zabbix监控nginx,首先nginx需要配置ngx_status,在nginx的配置文件中加入红框中的配置,然后重启nginx如下图所示: location /ngx ...
- 实验三 敏捷开发与XP实践 实验报告 20162305李昱兴
实验三 敏捷开发与XP实践 实验报告 20162305 一.什么是敏捷开发与XP 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法.敏捷开发以用户的需求进化为核 ...
- vue脚手架解决跨域问题-------配置反向代理
1.打开config/index.js 2.在dev配置对象中找到proxyTable:{} 3.添加如下配置 // 配置反向代理,解决跨域请求 proxyTable: { '/api': { tar ...
- tinyxml优化之二
原文链接:http://www.cnblogs.com/zouzf/p/4216046.html tinyxml优化之一说到了效率在差别有三方面的原因:解析的方式.内存分配(字符串操作).冗余的安全性 ...
- COS-7设备管理
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 操作系 ...
- Curator学习
Curator是对zookeeper的高级封装. 考虑到使用它来开发zookeeper应用的方便,特此来记录总结学习与开发使用过程的问题. 1. curator-framework Curator F ...
- struts2自定义Interceptor拦截器
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 多线程-信号量Semaphore
计数信号量用来控制同时访问某个特定资源的操作数量.Semaphore可以用于实现资源池,例如数据库连接池.我们可以构造一个固定长度的资源池,当资源池为空的时候,请求资源将会阻塞,而不是失败.当资源池非 ...