使用JDBC进行增删改查

合集下载

jdbc连接数据库的四个步骤

jdbc连接数据库的四个步骤

jdbc连接数据库的四个步骤一、引入jdbc相关的jar包在使用jdbc连接数据库之前,需要先引入jdbc相关的jar包,以便在代码中使用jdbc的相关类和方法。

常用的jdbc jar包有mysql-connector-java、ojdbc等,根据所使用的数据库类型选择相应的jar包。

二、加载数据库驱动加载数据库驱动是使用jdbc连接数据库的第一步。

不同的数据库有不同的驱动类,需要根据所使用的数据库类型加载相应的驱动类。

加载驱动的方式有两种:一种是使用Class.forName()方法加载驱动类,另一种是使用DriverManager.registerDriver()方法注册驱动类。

三、建立数据库连接建立数据库连接是使用jdbc连接数据库的第二步。

在建立数据库连接之前,需要先获取数据库连接所需的连接信息,包括数据库的URL、用户名和密码。

数据库的URL是连接数据库的唯一标识,用户名和密码用于验证用户身份。

通过调用DriverManager.getConnection()方法,并传入连接信息参数,即可建立数据库连接。

四、执行数据库操作建立数据库连接之后,就可以执行数据库操作了。

数据库操作包括数据的增删改查等操作。

在执行数据库操作之前,需要创建Statement或PreparedStatement对象,并使用这些对象执行相应的SQL语句。

Statement对象用于执行静态SQL语句,而PreparedStatement对象用于执行带有参数的预编译SQL语句。

执行SQL语句后,可以通过ResultSet对象获取查询结果。

jdbc连接数据库的四个步骤如上所述,其中第一步是引入jdbc相关的jar包,第二步是加载数据库驱动,第三步是建立数据库连接,第四步是执行数据库操作。

通过这四个步骤,可以实现使用jdbc连接数据库,进行数据的增删改查等操作。

在使用jdbc连接数据库时,需要注意以下几点:1. 引入的jdbc jar包需要与所使用的数据库类型对应,否则无法正常连接数据库。

jdbctemplate增删改查语句

jdbctemplate增删改查语句

jdbctemplate增删改查语句【原创实用版】目录1.JDBC 概述2.JDBC 模板的作用3.增删改查语句的实现4.总结正文一、JDBC 概述JDBC,即 Java Database Connectivity,是 Java 语言中用于连接和操作数据库的一种技术标准。

它提供了一组用于访问关系型数据库的接口,可以使Java 程序员在不关心具体数据库类型的情况下,实现对数据库的操作。

JDBC 将Java 程序与数据库隔离,降低了程序与数据库的耦合度,方便了程序的开发和维护。

二、JDBC 模板的作用在实际开发中,我们通常会使用 JDBC 模板来简化 JDBC 操作。

JDBC 模板是一种封装了 JDBC 操作的代码模板,它将常用的 JDBC 操作进行了抽象,提供了简单易用的接口。

使用 JDBC 模板可以减少重复代码,提高开发效率,降低出错概率。

三、增删改查语句的实现1.查询语句查询语句是数据库操作中最常见的一种,它用于从数据库中检索数据。

JDBC 模板中的查询语句通常使用`Query`接口实现。

以下是一个简单的查询语句示例:```javaString sql = "SELECT * FROM user";Query query = db.createQuery(sql);List<Map<String, Object>> result = query.list();```2.插入语句插入语句用于将数据插入到数据库中。

JDBC 模板中的插入语句通常使用`Insert`接口实现。

以下是一个简单的插入语句示例:```javaString sql = "INSERT INTO user (username, password) VALUES(#{username}, #{password})";Insert insert = db.createInsert(sql);insert.setString("username", "test");insert.setString("password", "123456");int rows = insert.execute();```3.更新语句更新语句用于修改数据库中的数据。

简述jdbc访问数据库的一般流程

简述jdbc访问数据库的一般流程

简述jdbc访问数据库的一般流程JDBC 是 Java Database Connectivity 的缩写,意为 Java 语言连接数据库。

使用 JDBC 访问数据库的一般流程如下:1. 加载和注册数据库驱动程序:在程序中引入所需的 JDBC 驱动程序,并将其注册到 Java 虚拟机中。

2. 连接数据库建立连接 (获得 Connection 对象):使用 JDBC API 提供的 Connection 对象连接到数据库,一般通过 URL、DriverManager 等方法获取 Connection 对象。

3. 操作数据库 (增查改删):使用 Connection 对象执行 SQL 语句,进行数据的增删改查操作。

可以使用 JDBC API 提供的Statement、ResultSet 等对象来实现。

4. 创建数据库操作对象 (用于执行 SQL 语句):根据需要创建相应的 DatabaseOperation 对象,用于执行 SQL 语句。

5. 关闭连接:在使用完 Connection 对象后,需要及时关闭连接以释放资源。

具体实现过程可以参考以下示例代码:```// 加载和注册数据库驱动程序Class.forName('com.mysql.jdbc.Driver');Connection conn =DriverManager.getConnection('jdbc:mysql://localhost:3306/te st', 'root', 'password');// 连接数据库conn.setAutoCommit(false);// 操作数据库PreparedStatement stmt = conn.prepareStatement('SELECT * FROM user');ResultSet rs = stmt.executeQuery();// 创建数据库操作对象DatabaseOperation bop = new DatabaseOperation('SELECT * FROM user');// 执行 SQL 语句bop.executeUpdate(stmt);// 关闭连接conn.close();```以上仅为一般流程,具体实现过程可能因应用场景不同而有所差异。

javaJDBC教学设计

javaJDBC教学设计

Java JDBC教学设计一、引言JDBC(Java Database Connectivity)是Java语言对数据库访问的一种标准接口。

它提供了一套方法和类,用于连接和操作各种关系型数据库。

本文将介绍如何设计一套完整的Java JDBC教学计划,帮助学生掌握JDBC的基本概念和使用方法。

二、教学目标1. 理解JDBC的基本原理和核心概念。

2. 掌握使用JDBC连接数据库的方法。

3. 学会执行SQL语句和处理数据库查询结果。

4. 实践使用JDBC进行增删改查操作。

5. 掌握事务处理和批量操作的使用方法。

三、教学内容1. JDBC基础知识1.1 JDBC概述:介绍JDBC的定义、特点和作用。

1.2 JDBC架构:介绍JDBC的体系结构和主要组件。

1.3 JDBC驱动类型:介绍JDBC的四种驱动类型及其特点。

1.4 JDBC连接过程:详细解释JDBC连接数据库的步骤和方法。

2. JDBC连接数据库2.1 加载JDBC驱动程序:介绍如何加载数据库驱动程序。

2.2 连接数据库:详细描述如何建立与数据库的连接。

2.3 关闭数据库连接:讲解如何正确关闭数据库连接。

3. 执行SQL语句3.1 创建Statement对象:介绍如何创建和使用Statement 对象。

3.2 执行SQL语句:示范如何执行各种类型的SQL语句(查询、插入、更新、删除)。

3.3 批量更新:讲解如何使用JDBC进行批量更新操作。

4. 处理查询结果4.1 ResultSet对象:介绍ResultSet接口的方法和使用。

4.2 遍历查询结果:演示如何遍历和处理查询结果。

4.3 关闭ResultSet和Statement对象:说明正确关闭ResultSet和Statement对象的方法。

5. 事务处理5.1 事务概述:介绍事务的定义、特点和使用场景。

5.2 事务处理方法:讲解如何使用JDBC进行事务处理。

5.3 事务回滚和提交:示范如何进行事务回滚和提交操作。

jsp+servlet+jdbc实现对数据库的增删改查

jsp+servlet+jdbc实现对数据库的增删改查

jsp+servlet+jdbc实现对数据库的增删改查⼀、JSP和Servlet的简单介绍1、Servlet和JSP简介:Java开发Web应⽤程序时⽤到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执⾏的Java程序,⼀个被称为Servlet容器的程序(其实就是服务器)负责执⾏Java程序,⽽JSP(Java Server Page)则是⼀个页⾯,由JSP容器负责执⾏.2、Servlet和JSP的区别:Servlet以Java程序为主,输出HTML代码时需要使⽤out.println函数,也就是说Java中内嵌HTML;⽽JSP则以HTML页⾯为主,需要写Java代码时则在页⾯中直接插⼊Java代码,即HTML中内嵌Java.3、MVC模型MVC模型就是将数据、逻辑处理、⽤户界⾯分离的⼀种⽅法1)、M(Model, 模型):⽤于数据处理、逻辑处理2)、V(View,视图):⽤于显⽰⽤户界⾯3)、C(Controller,控制器):根据客户端的请求控制逻辑⾛向和画⾯⽽在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet1)、M = JavaBeans:⽤于传递数据,拥有与数据相关的逻辑处理2)、V = JSP:从Model接收数据并⽣成HTML3)、C = Servlet:接收HTTP请求并控制Model和View4、jdbc连接,可参考⽂章:⼆、代码演⽰,实现了book的添加删除和修改功能1、环境的配置myeclipse+tomcat+MySQL2、Book中bean类package example.bean.book;public class Book {// 编号private int id;// 图书名称private String name;// 价格private double price;// 数量private int bookCount;// 作者private String author;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getBookCount() {return bookCount;}public void setBookCount(int bookCount) {this.bookCount = bookCount;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}}3、Servlet类1)、FindServlet.javapackage example.servlet.book;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import example.bean.book.Book;/*** Servlet implementation class FindServlet*/public class FindServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {try {// 加载数据库驱动,注册到驱动管理器Class.forName("com.mysql.jdbc.Driver");// 数据库连接字符串String url = "jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf-8"; // 数据库⽤户名String username = "root";// 数据库密码String password = "";// 创建Connection连接Connection conn = DriverManager.getConnection(url, username,password);// 添加图书信息的SQL语句String sql = "select * from tb_books";// 获取StatementStatement statement = conn.createStatement();ResultSet resultSet = statement.executeQuery(sql);List<Book> list = new ArrayList<Book>();while (resultSet.next()) {Book book = new Book();book.setId(resultSet.getInt("id"));book.setName(resultSet.getString("name"));book.setPrice(resultSet.getDouble("price"));book.setBookCount(resultSet.getInt("bookCount"));book.setAuthor(resultSet.getString("author"));list.add(book);}request.setAttribute("list", list);resultSet.close();statement.close();conn.close();} catch (Exception e) {e.printStackTrace();}request.getRequestDispatcher("book_list.jsp").forward(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}2)、UpdateServlet.java类package example.servlet.book;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class UpdateServlet*/public class UpdateServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {int id = Integer.valueOf(request.getParameter("id"));int bookCount = Integer.valueOf(request.getParameter("bookCount"));try {// 加载数据库驱动,注册到驱动管理器Class.forName("com.mysql.jdbc.Driver");// 数据库连接字符串String url = "jdbc:mysql://localhost:3306/db_book";// 数据库⽤户名String username = "root";// 数据库密码String password = "";// 创建Connection连接Connection conn = DriverManager.getConnection(url, username,password);// 更新SQL语句String sql = "update tb_books set bookcount=? where id=?";// 获取PreparedStatementPreparedStatement ps = conn.prepareStatement(sql);// 对SQL语句中的第⼀个参数赋值ps.setInt(1, bookCount);// 对SQL语句中的第⼆个参数赋值ps.setInt(2, id);// 执⾏更新操作ps.executeUpdate();// 关闭PreparedStatementps.close();// 关闭Connectionconn.close();e.printStackTrace();}// 重定向到FindServletresponse.sendRedirect("FindServlet");}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}3)、DeleteServlet类package example.servlet.book;import java.io.IOException;import java.sql.Connection;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import example.dao.book.BookJdbcDao;import example.dao.book.ConnectionFactory;/*** Servlet implementation class DeleteServlet*/public class DeleteServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {int id = Integer.valueOf(request.getParameter("id"));try {// // 加载数据库驱动,注册到驱动管理器// Class.forName("com.mysql.jdbc.Driver");// // 数据库连接字符串// String url = "jdbc:mysql://localhost:3306/db_book";// // 数据库⽤户名// String username = "root";// // 数据库密码// String password = "";// // 创建Connection连接// Connection conn = DriverManager.getConnection(url, username,// password);// // 删除图书信息的SQL语句// String sql = "delete from tb_books where id=?";// // 获取PreparedStatement// PreparedStatement ps = conn.prepareStatement(sql);// // 对SQL语句中的第⼀个占位符赋值// ps.setInt(1, id);// // 执⾏更新操作// ps.executeUpdate();// // 关闭PreparedStatement// ps.close();// // 关闭Connection// conn.close();BookJdbcDao bookDao=new BookJdbcDao();Connection conn=ConnectionFactory.getInstance().getConnection();bookDao.delete(conn,id);} catch (Exception e) {e.printStackTrace();}// 重定向到FindServletresponse.sendRedirect("FindServlet");}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}4、servlet访问url映射配置:由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到⼀个URL地址上,这个⼯作在web.xml⽂件中使⽤<servlet>元素和<servlet-mapping>元素完成,<servlet>元素⽤于注册Servlet,它包含有两个主要的⼦元素:<servlet-name>和<servlet-class>,分别⽤于设置Servlet的注册名称和Servlet的完整类名。

使用JSP对数据库进行增删改查

使用JSP对数据库进行增删改查

使用JSP对数据库进行增删改查JSP(Java Server Pages)是一种用于开发Web应用程序的Java技术。

它可以直接在HTML页面中嵌入Java代码,实现动态生成页面内容。

在使用JSP进行数据库的增删改查操作时,通常需要借助JDBC(Java Database Connectivity)来进行数据库的连接和操作。

接下来,需要进行数据库的连接。

可以使用JDBC提供的DriverManager类和Connection接口来实现。

首先,需要定义数据库的相关信息,如驱动程序名称、数据库URL、用户名和密码。

然后,使用DriverManager的静态方法getConnection(来获取数据库连接,传入相应的参数。

例如,对于MySQL数据库,可以使用如下代码进行连接:String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库URLString userName = "root"; // 数据库用户名String password = "password"; // 数据库密码try//加载驱动程序Class.forName(driverName);//获取数据库连接Connection connection = DriverManager.getConnection(url, userName, password);//...} catch (ClassNotFoundException e)e.printStackTrace(;} catch (SQLException e)e.printStackTrace(;连接成功后,接下来可以进行数据库的增删改查操作。

通常,可以使用JDBC的Statement或PreparedStatement对象来执行SQL语句。

Statement对象用于静态SQL语句,而PreparedStatement对象用于动态SQL语句。

jdbctemplate的update方法

jdbctemplate的update方法

jdbctemplate的update方法JdbcTemplate的update方法是Spring框架中JdbcTemplate类中的一个重要方法。

它用于执行对数据库进行增、删、改的操作。

在本文中,我将深入讲解JdbcTemplate的update方法,包括其功能、使用方法、参数和返回值等方面的信息,希望能对读者有所帮助。

一、功能概述JdbcTemplate的update方法用于执行对数据库进行更新操作,包括插入新纪录、修改旧记录和删除记录等功能。

通过调用update方法,可以向数据库提交SQL语句,并将其执行结果返回给调用者。

二、使用方法要使用JdbcTemplate的update方法,首先需要创建一个JdbcTemplate 对象,并在该对象上调用update方法。

下面是一个示例代码片段,演示如何使用JdbcTemplate的update方法插入一条新记录到数据库中:@Autowiredprivate JdbcTemplate jdbcTemplate;public void insertData(String name, int age) {String sql = "INSERT INTO user(name, age) VALUES(?, ?)";jdbcTemplate.update(sql, name, age);}在上述代码中,首先通过@Autowired注解将JdbcTemplate对象注入到当前的类中。

然后在insertData方法中,我们使用了update方法来执行插入操作。

其中,第一个参数是SQL语句,而后续的参数是SQL语句中的占位符的值。

三、参数说明JdbcTemplate的update方法有多个重载形式,可以根据需要传递不同的参数。

下面是update方法的几种常见参数形式及其说明:1. update(String sql, Object... args)这是update方法最常用的参数形式。

【小白日记】Java学习JDBC通过junit单元测试编写CRUD数据库的增删改查

【小白日记】Java学习JDBC通过junit单元测试编写CRUD数据库的增删改查

【⼩⽩⽇记】Java学习JDBC通过junit单元测试编写CRUD数据库的增删改查CRUD : (create, read, update, delete)增删该查上⼀篇博⽂整理了关于sql 中 CRUD的语法这次放到java⼯程当中来进⾏执⾏⾸先还是要依赖之前写好的JDBCUtill 和jbdc.properties以及jdbc的jar⽂件新建⼯程和配置环境和之前完全⼀样不过多叙述建⽴class 命名为TestDemopackage com.sky.jdbc.test;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import org.junit.Test;import com.sky.jdbc.util.JDBCUtill;/*** 使⽤后junit执⾏单元测试** @author WeiHaoLee**/public class TestDemo {@Testpublic void testQuery() {// 查询Connection conn = null;Statement st = null;ResultSet rs = null;try {// 获取连接对象conn = JDBCUtill.getConn();// 根据连接对象,得到statementst = conn.createStatement();// 执⾏sql 语句返回resulsetString sql = "select * from stu_list";rs = st.executeQuery(sql);// 遍历结果集while (rs.next()) {String name = rs.getString("name");int age = rs.getInt("age");System.out.println(name + " " + age);}} catch (Exception e) {e.printStackTrace();} finally {JDBCUtill.release(conn, st, rs);}}@Testpublic void testInsert() {Connection conn = null;Statement st = null;try {// 获取连接对象conn = JDBCUtill.getConn();// 根据连接对象,得到statementst = conn.createStatement();//执⾏添加String sql = "insert into stu_list values(null , 'aobama' , 59)";//此⽅法的返回结果代表改变的⾏数改变⾏数⼤于0 则修改成功int result = st.executeUpdate(sql);if(result >0) {System.out.println("添加成功");}else {System.out.println("添加失败");}} catch (Exception e) {e.printStackTrace();}finally {JDBCUtill.release(conn, st);}}@Testpublic void testDelete() {Connection conn = null;Statement st = null;try {// 获取连接对象conn = JDBCUtill.getConn();// 根据连接对象,得到statementst = conn.createStatement();//执⾏添加String sql = "delete from stu_list where name= 'aobama'";//此⽅法的返回结果代表改变的⾏数改变⾏数⼤于0 则修改成功 int result = st.executeUpdate(sql);if(result >0) {System.out.println("删除成功");}else {System.out.println("删除失败");}} catch (Exception e) {e.printStackTrace();}finally {JDBCUtill.release(conn, st);}}@Testpublic void testUpdate() {Connection conn = null;Statement st = null;try {// 获取连接对象conn = JDBCUtill.getConn();// 根据连接对象,得到statementst = conn.createStatement();//执⾏添加String sql = "update stu_list set age = 28 where id = 5";//此⽅法的返回结果代表改变的⾏数改变⾏数⼤于0 则修改成功 int result = st.executeUpdate(sql);if(result >0) {System.out.println("更新成功");}else {System.out.println("更新失败");}} catch (Exception e) {e.printStackTrace();}finally {JDBCUtill.release(conn, st);}}}由于引⼊了junit 所以直接到junit进⾏测试即可。

jdbc sql语句

jdbc sql语句

jdbc sql语句JDBC SQL语句是Java程序中与数据库交互的重要方式,它可以实现对数据库的增删改查等操作。

下面列举了10个常用的JDBC SQL 语句,以及它们的用途和示例代码。

1. SELECT语句SELECT语句用于从数据库中查询数据。

它可以查询一个或多个表中的数据,并可以使用WHERE子句来过滤数据。

示例代码:```String sql = "SELECT * FROM users WHERE age > 18";PreparedStatement pstmt = conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while (rs.next()) {String name = rs.getString("name");int age = rs.getInt("age");System.out.println(name + " " + age);}```2. INSERT语句INSERT语句用于向数据库中插入新的数据。

它可以插入一条或多条数据,并可以使用VALUES子句来指定要插入的数据。

示例代码:```String sql = "INSERT INTO users(name, age) VALUES(?, ?)";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setString(1, "Tom");pstmt.setInt(2, 20);pstmt.executeUpdate();```3. UPDATE语句UPDATE语句用于更新数据库中的数据。

它可以更新一个或多个表中的数据,并可以使用WHERE子句来指定要更新的数据。

jdbctemplate增删改查语句

jdbctemplate增删改查语句

jdbctemplate增删改查语句JdbcTemplate是Spring框架提供的一个强大的JDBC编程支持类,能够简化数据库操作,使开发者能够更快速、更方便地进行增删改查操作。

在使用JdbcTemplate时,我们需要编写一些SQL语句来执行相关的数据库操作。

1. 查询操作JdbcTemplate的查询方法主要有:- `queryForObject(String sql, Class<T> requiredType, Object... args)`:查询单个对象,返回指定类型的对象。

如果查询结果为空,将会抛出EmptyResultDataAccessException异常。

- `queryForList(String sql, Object... args)`:查询多个对象,返回List集合,每行数据作为一个Map对象,多个Map对象组成List。

- `query(String sql, RowCallbackHandler rowCallbackHandler, Object... args)`:查询多个对象,并通过RowCallbackHandler处理每行数据。

- `query(String sql, RowMapper<T> rowMapper, Object... args)`:查询多个对象,通过RowMapper将每行数据映射为指定的实体对象。

示例代码:```javaString sql = "SELECT * FROM user WHERE id = ?";User user = jdbcTemplate.queryForObject(sql, User.class, userId); String sql = "SELECT * FROM user";List<Map<String, Object>> userList =jdbcTemplate.queryForList(sql);String sql = "SELECT * FROM user";jdbcTemplate.query(sql, new RowCallbackHandler() {@Overridepublic void processRow(ResultSet resultSet) throws SQLException {// 处理每行数据}});String sql = "SELECT * FROM user";List<User> userList = jdbcTemplate.query(sql, new RowMapper<User>() {@Overridepublic User mapRow(ResultSet resultSet, int i) throws SQLException {// 将每行数据映射到User对象User user = new User();user.setId(resultSet.getInt("id"));user.setName(resultSet.getString("name"));return user;}});```2. 插入操作JdbcTemplate的插入方法主要有:- `update(String sql, Object... args)`:执行插入操作,并返回受影响的行数。

jdbc操作oracle数据库(增删改查)

jdbc操作oracle数据库(增删改查)
9.privateString email ;
10.//生成getter、setter方法
11.publicvoidsetId<String id>
12.{
13.this.id = id ;
14.}
15.publicvoidsetName<String name>
16.{
= name ;
84.pstmt.setString<1,id> ;
85.//进行数据库更新操作
86.pstmt.executeUpdate<> ;
87.pstmt.close<> ;
88.}
89.catch<Exception e>
90.{
91.thrownewException<"操作出现异常"> ;
92.}
93.finally
2.importjava.sql.* ;
3.importjava.util.* ;
4.importcn.mldn.lxh.vo.* ;
5.importcn.mldn.lxh.dbc.* ;
6.importcn.mldn.lxh.dao.* ;
7.//此类需要完成具体的数据库操作,需要JDB代码
8.publicclassPersonDAOImplimplementsPersonDAO
76.PreparedStatement pstmt =null;
77.DataBaseConnection dbc =null;
78.//下面是针对数据库的具体操作
79.try
80.{
81.//连接数据库
82.dbc =newDataBaseConnection<> ;

jdbc数据库增、删、改、查语句

jdbc数据库增、删、改、查语句

jdbc数据库增、删、改、查语句一、增加数据1. 插入单行数据在JDBC中,我们可以使用INSERT INTO语句来向数据库中插入单行数据。

例如,我们要向student表中插入一条新的学生记录,可以使用以下语句:INSERT INTO student (id, name, age) VALUES (1, '张三', 18);2. 批量插入数据如果我们要向数据库中插入多行数据,可以使用批量插入的方式,以提高效率。

例如,我们要向student表中插入多条新的学生记录,可以使用以下语句:INSERT INTO student (id, name, age) VALUES (1, '张三', 18), (2, '李四', 20), (3, '王五', 22);二、删除数据1. 删除指定行数据在JDBC中,我们可以使用DELETE FROM语句来删除数据库中的指定行数据。

例如,我们要删除student表中id为1的学生记录,可以使用以下语句:DELETE FROM student WHERE id = 1;2. 删除所有数据如果我们要删除数据库中的所有数据,可以使用DELETE FROM语句,并不指定任何条件。

例如,我们要删除student表中的所有学生记录,可以使用以下语句:DELETE FROM student;三、修改数据1. 更新指定行数据在JDBC中,我们可以使用UPDATE语句来更新数据库中的指定行数据。

例如,我们要将student表中id为1的学生记录的年龄修改为20岁,可以使用以下语句:UPDATE student SET age = 20 WHERE id = 1;2. 批量更新数据如果我们要更新数据库中的多行数据,可以使用批量更新的方式,以提高效率。

例如,我们要将student表中id为1和2的学生记录的年龄都修改为20岁,可以使用以下语句:UPDATE student SET age = 20 WHERE id IN (1, 2);四、查询数据1. 查询所有数据在JDBC中,我们可以使用SELECT语句来查询数据库中的数据。

jdbc批量插入、批量删除、批量更新

jdbc批量插入、批量删除、批量更新

一、JDBC的批量插入JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等。

我用Mysql5.1.5的JDBCdriver分别对三种比较常用的方法做了测试方法一,使用PreparedStatement加批量的方法1.try{2.Class.forName("com.mysql.jdbc.Driver");3.conn=DriverManager.getConnection(o_url,userName,password);4.conn.setAutoCommit(false);5.Stringsql="INSERTadlogs(ip,website,yyyymmdd,hour,object_id)VALUES(?,?,?,?,?)";6.PreparedStatementprest=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);7.for(intx=0;x<size;x++){8.prest.setString(1,"192.168.1.1");9.prest.setString(2,"localhost");10.prest.setString(3,"20081009");11.prest.setInt(4,8);12.prest.setString(5,"11111111");13.prest.addBatch();14.}15.prest.executeBatch();mit();17.conn.close();18.}catch(SQLExceptionex){19.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);20.}catch(ClassNotFoundExceptionex){21.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);22.}说明下在建Statement的时候,后面两个参数的意义:第一个参数指定ResultSet的类型。

java项目中的增删改查方法

java项目中的增删改查方法

java项目中的增删改查方法在Java项目中,增删改查(CRUD)操作是非常常见的需求。

无论是开发Web应用、移动应用还是后台系统,都会涉及到对数据的增加、删除、修改和查询操作。

在Java中,我们通常使用数据库来存储数据,而针对数据库的增删改查操作,我们通常会使用SQL语句来实现。

下面我们来看看在Java项目中,如何实现增删改查方法。

1. 增加(Create),在Java项目中,要实现数据的增加操作,通常需要先连接数据库,然后使用SQL语句向数据库中插入新的数据。

在Java中,我们可以使用JDBC(Java Database Connectivity)来连接数据库,使用PreparedStatement或者Statement来执行插入操作。

另外,如果我们使用了ORM框架(如Hibernate或MyBatis),我们也可以通过框架提供的API来实现数据的插入操作。

2. 删除(Delete),删除数据操作通常是根据某个条件从数据库中删除符合条件的数据。

在Java项目中,我们可以使用SQL的DELETE语句来实现数据的删除操作。

同样地,我们可以使用JDBC或者ORM框架提供的API来执行删除操作。

3. 修改(Update),修改数据操作通常是根据某个条件更新数据库中的数据。

在Java项目中,我们可以使用SQL的UPDATE语句来实现数据的更新操作。

同样地,我们可以使用JDBC或者ORM框架提供的API来执行更新操作。

4. 查询(Retrieve),查询数据操作是从数据库中检索数据。

在Java项目中,我们可以使用SQL的SELECT语句来实现数据的查询操作。

同样地,我们可以使用JDBC或者ORM框架提供的API来执行查询操作,并将查询结果返回给Java应用程序。

总的来说,在Java项目中实现增删改查方法,我们通常会使用JDBC来连接数据库并执行SQL语句,或者使用ORM框架来简化数据库操作。

无论是使用JDBC还是ORM框架,都需要对数据库操作有一定的了解,以便能够编写出高效、安全的增删改查方法。

jdbc增删改查实验报告

jdbc增删改查实验报告

JDBC增删改查实验报告一、引言数据库是现代软件开发中不可或缺的一部分,而对数据库的操作也是开发中最常见的任务之一。

JDBC(Java Database Connectivity)是Java语言中用于与数据库进行交互的API。

本实验将通过使用JDBC进行增删改查操作,探索JDBC在数据库操作中的应用。

二、实验目的通过本实验,我们将达到以下目的: 1. 理解JDBC的基本概念和原理; 2. 掌握使用JDBC进行数据库连接和操作的方法; 3. 熟悉JDBC在增删改查中的应用; 4. 实践使用JDBC进行数据库操作。

三、实验环境本实验使用以下环境: - 操作系统:Windows 10 - JDK版本:Java 8 - 数据库:MySQL 8.0 - IDE:Eclipse四、实验步骤4.1 数据库准备在MySQL数据库中创建一个名为”test_db”的数据库,并创建一个名为”users”的表,表结构如下:CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,email VARCHAR(50));4.2 配置JDBC连接在Java项目中引入JDBC依赖,例如使用Maven管理依赖的项目,在pom.xml文件中添加以下代码:<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency></dependencies>4.3 连接数据库在Java代码中使用JDBC连接数据库,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库String url = "jdbc:mysql://localhost:3306/test_db";String username = "root";String password = "123456";try {Connection connection = DriverManager.getConnection(url, username, password);// 连接成功,进行后续操作// ...} catch (SQLException e) {e.printStackTrace();}}}4.4 插入数据使用JDBC向数据库中插入数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 插入数据String insertSql = "INSERT INTO users (name, age, email) VALUES (?, , )";PreparedStatement statement = connection.prepareStatement(insertSq l);statement.setString(1, "张三");statement.setInt(2, 20);statement.setString(3,"********************");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("插入成功");} else {System.out.println("插入失败");}} catch (SQLException e) {e.printStackTrace();}}}4.5 查询数据使用JDBC从数据库中查询数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 查询数据String selectSql = "SELECT * FROM users";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(selectSql);while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");int age = resultSet.getInt("age");String email = resultSet.getString("email");System.out.println("id: " + id + ", name: " + name + ", age: " + age + ", email: " + email);}} catch (SQLException e) {e.printStackTrace();}}}4.6 更新数据使用JDBC更新数据库中的数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 更新数据String updateSql = "UPDATE users SET age = ? WHERE name = ?";PreparedStatement statement = connection.prepareStatement(updateSq l);statement.setInt(1, 25);statement.setString(2, "张三");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("更新成功");} else {System.out.println("更新失败");}} catch (SQLException e) {e.printStackTrace();}}}4.7 删除数据使用JDBC从数据库中删除数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 删除数据String deleteSql = "DELETE FROM users WHERE name = ?";PreparedStatement statement = connection.prepareStatement(deleteSq l);statement.setString(1, "张三");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("删除成功");} else {System.out.println("删除失败");}} catch (SQLException e) {e.printStackTrace();}}}五、实验总结通过本次实验,我们成功地使用JDBC进行了增删改查操作。

Oracle 10g数据库连接及增删改查

Oracle 10g数据库连接及增删改查

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcConnection {public static void main(String[] args) {//getCon();// insertTbUser();updateUser();//query();//delTbUser();}public static void insertTbUser() {String url = "jdbc:oracle:thin:@localhost:1521:orcl";String driverClass = "oracle.jdbc.driver.OracleDriver";try {Class.forName(driverClass);Connection con = java.sql.DriverManager.getConnection(url, "mm","mm");// statement开辟一个通道java.sql.Statement st = con.createStatement();String insertSql = "insert intotb_user(userid,username,password)" +// 执行sql语句,返回操作所影响的条数。

"values(101,'zhuyu','zhuyu')";st.execute(insertSql);st.close();con.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}public static void delTbUser(){String url="jdbc:oracle:thin:@localhost:1521:orcl";String driverClass="oracle.jdbc.driver.OracleDriver";Class.forName(driverClass);Connection con=DriverManager.getConnection(url,"mm","mm");java.sql.Statement st=con.createStatement();String delSql="delete from tb_user where userid='23'";st.execute(delSql);st.close();con.close();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void updateUser() {String url = "jdbc:oracle:thin:@localhost:1521:orcl";String driverClass = "oracle.jdbc.driver.OracleDriver";try {Class.forName(driverClass);Connection con = DriverManager.getConnection(url,"mm","mm");String updateSql = "update tb_user set password='1223423' where userid=5";Statement st = con.createStatement();st.execute(updateSql);st.close();con.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}public static void query() {String url = "jdbc:oracle:thin:@localhost:1521:orcl";String driverClass = "oracle.jdbc.driver.OracleDriver";Connection con = null;Statement st = null;ResultSet rs = null;Class.forName(driverClass);con = DriverManager.getConnection(url, "mm", "mm");st = con.createStatement();String querySql = "select * from tb_user";rs = st.executeQuery(querySql);System.out.println("id\tusername\tpassword");while (rs.next()) {int id = rs.getInt("userid");String userName = rs.getString("username");String password = rs.getString("password");System.out.println(id + "\t"+ userName + "\t"+ password);}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}public static void getCon() {String url = "jdbc:oracle:thin:@localhost:1521:orcl";String driverClass = "oracle.jdbc.driver.OracleDriver";// 加载驱动try {ng.Class.forName(driverClass).newInstance();// 获得连接java.sql.Connection con =java.sql.DriverManager.getConnection(url,"mm", "mm");System.out.println(con);} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}}。

jdbc增删改查实验报告

jdbc增删改查实验报告

jdbc增删改查实验报告一、实验目的本次实验旨在通过使用Java Database Connectivity (JDBC)技术,掌握数据库的增删改查操作。

二、实验环境本次实验使用的开发工具为Eclipse,数据库管理系统为MySQL。

三、实验过程1. 数据库连接在Java中使用JDBC连接到数据库需要以下步骤:1)加载数据库驱动程序;2)获取数据库连接;3)创建Statement对象或PreparedStatement对象。

示例代码如下:Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(url, username, password);Statement stmt = conn.createStatement();其中url是指要连接的数据库地址,username和password是登录数据库所需的用户名和密码。

2. 数据库查询操作查询操作可以使用Statement对象或PreparedStatement对象执行SQL语句。

PreparedStatement对象比Statement对象更安全,因为它可以防止SQL注入攻击。

示例代码如下:PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE age > ?");pstmt.setInt(1, 18);ResultSet rs = pstmt.executeQuery();其中?表示占位符,可以通过setInt()等方法设置占位符的值。

3. 数据库插入操作插入操作需要使用PreparedStatement对象执行INSERT语句。

示例代码如下:PreparedStatement pstmt = conn.prepareStatement("INSERT INTO users(name, age) VALUES(?, ?)");pstmt.setString(1, "Tom");pstmt.setInt(2, 20);int rowsAffected = pstmt.executeUpdate();其中executeUpdate()方法返回受影响的行数。

jdbcselect语句

jdbcselect语句

jdbcselect语句JDBC是一种Java API,它允许 Java 应用程序访问关系型数据库。

在 Java 中,使用 JDBC 时,我们需要编写 SQL 语句来查询、插入、更新和删除数据,其中最基本的就是 select 语句了。

本文将围绕 JDBC 的 select 语句展开,详细分步骤介绍如何使用 JDBC 实现数据查询。

一、导入 JDBC 驱动在编写 JDBC 应用之前,我们需要先导入 JDBC 驱动,这里以MySQL 为例,具体步骤如下:1. 在项目的根目录下创建一个 libs 文件夹;2. 将 MySQL 驱动程序 mysql-connector-java-5.1.48.jar 文件复制到 libs 文件夹下;3. 在项目的 build.gradle 文件中添加以下代码:dependencies {implementation fileTree(dir: 'libs', include: ['*.jar']) }4. 同步项目并重新构建应用。

这样,就成功导入了 JDBC 驱动。

二、建立 JDBC 连接在完成导入 JDBC 驱动后,我们需要建立与数据库的连接,连接MySQL 数据库的代码示例如下:Class.forName("com.mysql.jdbc.Driver"); // 加载 JDBC 驱动String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库连接字符串String user = "username"; // 用户名String password = "password"; // 密码Connection conn = DriverManager.getConnection(url, user,password); // 建立连接其中,“database_name”为需要连接的数据库名称,“username”和“password”为登录数据库的用户名和密码。

JDBCTemPlate的增删改查

JDBCTemPlate的增删改查

JDBCTemPlate的增删改查总结下最近项⽬⽤到的JDBCTemplate的增删改查⽤到的⽅法1、update()⽅法【此⽅法主要⽤于新增插⼊⼀条记录、或者进⾏修改】a、新增⼀条记录,这⾥⽤到org.springframework.jdbc.core.JdbcTemplate包下封装的JdbcTemplate类jdbctemplate.update(sql,?,?,?,?)第⼀种语法:public boolean insertOrderLog(Integer OrdId, String LogType, String Content, String UserId, String SalesId, Integer CurrentOrderStatus, String OperateTime) {String sql = "insert into F_OD_OrderLog (OrdId,LogType,Content,UserId,SalesId,CurrentOrderStatus,OperateTime) values(?,?,?,?,?,?,?)";Integer count = jdbcTemplate.update(sql, OrdId, LogType, Content, UserId, SalesId, CurrentOrderStatus, OperateTime);第⼆种语法:第⼆种可获得当前表插⼊的最新主键1 String sql = "insert into F_OD_CompanyContacts(IdCardPicFrontUrl,IdCardPicReverseUrl,CompId,FullName,LicenseNumber,Address,MobilePhone,Email) values(?,?,?,?,?,?,?,?)";2// i = jdbcTemplate.update(sql, IdCardPicFrontUrl, IdCardPicReverseUrl, compId, FullName, LicenseNumber, Address, MobilePhone, Email, 1);3 GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();4 jdbcTemplate.update(new PreparedStatementCreator() {5public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {6int i = 0;7 java.sql.PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);8 ps.setObject(++i, IdCardPicFrontUrl);9 ps.setObject(++i, IdCardPicReverseUrl);10 ps.setInt(++i, compId);11 ps.setString(++i, FullName);12 ps.setString(++i, LicenseNumber);13 ps.setString(++i, Address);14 ps.setString(++i, MobilePhone);15 ps.setString(++i, Email);16return ps;17 }18 },19 keyHolder);20 Integer FiId = keyHolder.getKey().intValue();b、修改//更改数据switch (Ispoeple){case 1://法⼈联系⼈相同String sqq="update F_LYJ_SanWangNetLog set isIdCard=?,isMobilePhone=?,ispoeple=? where ordId=?";result= jdbcTemplate.update(sqq, map.get("isIdCard"), map.get("isMobilePhone"),Ispoeple ,ordId);break;case 2://法⼈联系⼈不相同String sqp="update F_LYJ_SanWangNetLog set isIdCard=?,isMobilePhone=?,isConFullName=?,isConLicenseNumber=?,isConMobilePhone=?,ispoeple=?, where ordId=?";result= jdbcTemplate.update(sqp, map.get("isIdCard"), map.get("isMobilePhone"),map.get("isConFullName"),map.get("isConLicenseNumber"),map.get("isConMobilePhone"), Ispoeple,ordId);break;}return result;2、queryforObject()⽅法【此⽅法主要⽤于查询⼀条记录字段数据,或者⼀个count(*)聚合记录】a、查询⼀条记录或者多个字段//查找当前法⼈,联系⼈主键String sqq = " SELECT fcl.LegalId,fcc.id FROM F_OD_OrderInfo fo LEFT JOIN F_OD_CompanyContacts fcc ON fo.FiId=fcc.id LEFT JOIN \n" +" F_OD_CompanyLegal fcl ON fo.LegalId=fcl.LegalId WHERE fo.`OrdId`=?";Map map = jdbcTemplate.queryForObject(sqq, new Object[]{ordId}, new RowMapper<Map<String, String>>() {@Overridepublic Map<String, String> mapRow(ResultSet resultSet, int i) throws SQLException {HashMap<String, String> map = new HashMap<>();map.put("LegalId", resultSet.getString("LegalId"));map.put("id", resultSet.getString("id"));return map;}});b、查询记录数String sql="select count(*) from F_LYJ_SanWangNetLog where ordId=?";Integer count = jdbcTemplate.queryForObject(sql, new Object[]{ordId}, Integer.class);3、query()⽅法【此⽅法主要⽤于多表联查,可查询多条list记录】1 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");2 List<Map<String, String>> list = jdbcTemplate.query(sql, obj, (rs, rowNum) -> {3boolean flag = false;4 Map<String, String> m = new HashMap<>();5 m.put("ordNum", rs.getString("OrdNum"));6 m.put("OrdId", rs.getString("OrdId"));7 m.put("GoodsServiceName", rs.getString("ServiceName"));8 m.put("relationId", rs.getString("RelationId"));9 m.put("onlinePayMoney", rs.getString("OnlinePayMoney"));10 m.put("payment", rs.getString("Payment"));11 m.put("ordStatus", rs.getString("OrdStatus"));12 m.put("createTime", rs.getTimestamp("CreateTime") == null ? "" : simpleDateFormat.format(rs.getTimestamp("CreateTime")));13 m.put("salesName", rs.getString("SalesName"));14 m.put("compName", rs.getString("CompName"));15 m.put("EASCompanyName", rs.getString("EASCompanyName"));16 m.put("ContactNumber", rs.getString("Phone"));17 m.put("OrdKind", rs.getString("OrdKind"));18 m.put("OrdType", rs.getString("OrdType"));19 m.put("RenewedTime", rs.getString("RenewedTime"));20 m.put("ReletId", rs.getString("ReletId"));21 m.put("EasContractNum", rs.getString("EasContractNum"));22if (null != rs.getString("RenewedTime")) {23 m.put("RenewedTimeStatus", "success");24 flag = true;25 } else {26 m.put("RenewedTimeStatus", "waring");27 }28 m.put("PaymentTime", rs.getString("PaymentTime"));29if (null != rs.getString("PaymentTime")) {30 m.put("PaymentTimeStatus", "success");31 flag = true;32 } else {33if (flag) {34 m.put("PaymentTimeStatus", "waring");35 flag = false;36 } else {37 m.put("PaymentTimeStatus", "");38 }39 }40 m.put("LetterTime", rs.getString("LetterTime"));41if (null != rs.getString("LetterTime")) {42 m.put("LetterTimeStatus", "success");43 } else {44if (flag) {45 m.put("LetterTimeStatus", "waring");46 flag = false;47 } else {48 m.put("LetterTimeStatus", "");49 }5051 }52 m.put("AoCransferTime", rs.getString("AoCransferTime"));53if (null != rs.getString("AoCransferTime")) {54 m.put("AoCransferTimeStatus", "success");55 } else {56if (flag) {57 m.put("AoCransferTimeStatus", "waring");58 flag = false;59 } else {60 m.put("AoCransferTimeStatus", "");61 }62 }63 m.put("SigintureTime", rs.getString("SigintureTime"));64if (null != rs.getString("SigintureTime")) {65 m.put("SigintureTimeStatus", "success");66 } else {67if (flag) {68 m.put("SigintureTimeStatus", "waring");69 flag = false;70 } else {71 m.put("SigintureTimeStatus", "");72 }73 }74 m.put("OurSigintureTime", rs.getString("OurSigintureTime"));75if (null != rs.getString("OurSigintureTime")) {76 m.put("OurSigintureTimeStatus", "success");77 } else {78if (flag) {79 m.put("OurSigintureTimeStatus", "waring");80 flag = false;81 } else {82 m.put("OurSigintureTimeStatus", "");83 }84 }85 m.put("HandoverTime", rs.getString("HandoverTime"));86if (null != rs.getString("HandoverTime")) {87 m.put("HandoverTimeStatus", "success");88 } else {89if (flag) {90 m.put("HandoverTimeStatus", "waring");91 flag = false;92 } else {93 m.put("HandoverTimeStatus", "");94 }95 }96 m.put("ComId", rs.getString("ComId"));97return m;4、查询中取数据库特殊时间字段,这⾥不能⽤getStrig 或者getdata(getdata不能取完整时间)1 Object[] obj = objList.toArray();2 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");34 List<Map<String, String>> list = jdbcTemplate.query(sql, obj, (rs, rowNum) -> {5 Map<String, String> m = new HashMap<>();8 m.put("RefoundOrderNumber", rs.getString("RefoundOrderNumber"));12 m.put("StartingTime", rs.getTimestamp("StartingTime") == null ? "" : simpleDateFormat.format(rs.getTimestamp("StartingTime")));13 m.put("ContinueTime", rs.getTimestamp("ContinueTime") == null ? "" : simpleDateFormat.format(rs.getTimestamp("ContinueTime")));15 m.put("salesName", rs.getString("SalesName"));16 m.put("HireContractNumber", rs.getString("HireContractNumber"));17 m.put("Initiator", rs.getString("Initiator"));18 m.put("reletReason", rs.getString("ReletReason"));19 m.put("compName", rs.getString("CompName"));20 m.put("EASCompanyName", rs.getString("EASCompanyName"));21 m.put("reletContractStatus", rs.getString("ReletContractStatus")); 26return m;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用JDBC进行增删改查一、statement对象介绍Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。

Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)。

Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的ResultSet对象。

1.1、CRUD操作-create使用executeUpdate(String sql)方法完成数据添加操作,示例操作:1 Statement st = conn.createStatement();2String sql = "insert into user(….) values(…..) ";3int num = st.executeUpdate(sql);4if(num>0){5System.out.println("插入成功!!!");6 }1.2、CRUD操作-update使用executeUpdate(String sql)方法完成数据修改操作,示例操作:1 Statement st = conn.createStatement();2String sql = “update user set name=‘’ where name=‘’";3int num = st.executeUpdate(sql);4if(num>0){5System.out.println(“修改成功!!!");6 }1.3、CRUD操作-delete使用executeUpdate(String sql)方法完成数据删除操作,示例操作:1 Statement st = conn.createStatement();2String sql = “delete from user where id=1;3int num = st.executeUpdate(sql);4if(num>0){5System.out.println(“删除成功!!!");6 }1.4、CRUD操作-read使用executeQuery(String sql)方法完成数据查询操作,示例操作:1 Statement st = conn.createStatement();2String sql = “select * from user where id=1;3 ResultSet rs = st.executeUpdate(sql);4while(rs.next()){5//根据获取列的数据类型,分别调用rs的相应方法映射到java对象中6 }二、使用jdbc对数据库增删改查2.1、搭建实验环境1、在mysql中创建一个库,并创建user表和插入表的数据。

SQL脚本如下:1create database jdbcStudy;23use jdbcStudy;45create table users(6id int primary key,7name varchar(40),8password varchar(40),9email varchar(60),10birthday date11 );2、新建一个JavaWeb工程,并导入MySQL数据库驱动。

3、在src目录下创建一个db.properties文件,如下图所示:在db.properties中编写MySQL数据库的连接信息,代码如下所示:1 driver=com.mysql.jdbc.Driver2 url=jdbc:mysql://localhost:3306/jdbcStudy3 username=root4 password=XDP4、编写一个JdbcUtils工具类,用于连接数据库,获取数据库连接和释放数据库连接,代码如下:1package me.gacl.utils;23import java.io.InputStream;4import java.sql.Connection;5import java.sql.DriverManager;6import java.sql.ResultSet;7import java.sql.SQLException;8import java.sql.Statement;9import java.util.Properties;1011public class JdbcUtils {1213private static String driver = null;14private static String url = null;15private static String username = null;16private static String password = null;1718static{19try{20//读取db.properties文件中的数据库连接信息21InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");22Properties prop = new Properties();23prop.load(in);2425//获取数据库连接驱动26driver = prop.getProperty("driver");27//获取数据库连接URL地址28url = prop.getProperty("url");29//获取数据库连接用户名30username = prop.getProperty("username");31//获取数据库连接密码32password = prop.getProperty("password");3334//加载数据库驱动35Class.forName(driver);3637}catch (Exception e) {38throw new ExceptionInInitializerError(e);39}40}4142/**43* @Method: getConnection44* @Description: 获取数据库连接对象45* @Anthor:admin46*47* @return Connection数据库连接对象48* @throws SQLException49*/50public static Connection getConnection() throws SQLException{51return DriverManager.getConnection(url, username,password);52}5354/**55* @Method: release56* @Description: 释放资源,57* 要释放的资源包括Connection数据库连接对象,负责执行SQL命令的Statement对象,存储查询结果的ResultSet对象58* @Anthor:admin59*60* @param conn61* @param st62* @param rs63*/64public static void release(Connection conn,Statement st,ResultSet rs){ 65if(rs!=null){66try{67//关闭存储查询结果的ResultSet对象68rs.close();69}catch (Exception e) {70 e.printStackTrace();71}72rs = null;73}74if(st!=null){75try{76//关闭负责执行SQL命令的Statement对象77st.close();78}catch (Exception e) {79 e.printStackTrace();80}81}8283if(conn!=null){84try{85//关闭Connection数据库连接对象86conn.close();87}catch (Exception e) {88 e.printStackTrace();89}90}91}92 }2.2、使用statement对象完成对数据库的CRUD操作测试代码如下:1package me.gacl.demo;23import java.sql.Connection;4import java.sql.ResultSet;5import java.sql.Statement;6import me.gacl.utils.JdbcUtils;78import org.junit.Test;910/**11* @ClassName: JdbcCRUDByStatement12* @Description: 通过Statement对象完成对数据库的CRUD操作13* @author: admin14* @date: 2014-9-15 下午11:22:1215*16*/17public class JdbcCRUDByStatement {1819@Test20public void insert(){21Connection conn = null;22Statement st = null;23ResultSet rs = null;24try{25//获取一个数据库连接26conn = JdbcUtils.getConnection();27//通过conn对象获取负责执行SQL命令的Statement对象28st = conn.createStatement();29//要执行的SQL命令30String sql = "insert into users(id,name,password,email,birthday) values(3,'白虎神皇','123','bhsh@','1980-09-09')";31//执行插入操作,executeUpdate方法返回成功的条数32int num = st.executeUpdate(sql);33if(num>0){34System.out.println("插入成功!!");35}3637}catch (Exception e) {38 e.printStackTrace();39}finally{40//SQL执行完成之后释放相关资源41JdbcUtils.release(conn, st, rs);42}43}4445@Test46public void delete(){47Connection conn = null;48Statement st = null;49ResultSet rs = null;50try{51conn = JdbcUtils.getConnection();52String sql = "delete from users where id=3";53st = conn.createStatement();54int num = st.executeUpdate(sql);55if(num>0){56System.out.println("删除成功!!");57}58}catch (Exception e) {59 e.printStackTrace();6061}finally{62JdbcUtils.release(conn, st, rs);63}64}6566@Test67public void update(){68Connection conn = null;69Statement st = null;70ResultSet rs = null;71try{72conn = JdbcUtils.getConnection();73String sql = "update users set name='admin',email='gacl@' where id=3"; 74st = conn.createStatement();75int num = st.executeUpdate(sql);76if(num>0){77System.out.println("更新成功!!");78}79}catch (Exception e) {80 e.printStackTrace();8182}finally{83JdbcUtils.release(conn, st, rs);84}85}8687@Test88public void find(){89Connection conn = null;90Statement st = null;91ResultSet rs = null;92try{93conn = JdbcUtils.getConnection();94String sql = "select * from users where id=3";95st = conn.createStatement();96rs = st.executeQuery(sql);97if(rs.next()){98System.out.println(rs.getString("name"));99}100}catch (Exception e) {101 e.printStackTrace();102}finally{103JdbcUtils.release(conn, st, rs);104}105}106 }三、PreparedStatement对象介绍PreperedStatement是Statement的子类,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:PreperedStatement可以避免SQL注入的问题。

相关文档
最新文档