java程序中增删改差如何实现对单一元素实现修改

java程序中增删改差如何实现对单一元素实现修改,第1张

前言:什么是JDBC

维基百科的简介:

Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。

简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行 *** 作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。

一、准备工作(一):MySQL安装配置和基础学习

使用JDBC *** 作数据库之前,首先你需要有一个数据库。这里提供了3个链接供读者自学,如果曾有过SQL语言的使用经历(包括在学校中的课堂学习),前两个链接足以上手。

1.安装和配置:mysql安装图解 mysql图文安装教程(详细说明)

2.基本 *** 作:21分钟 MySQL 入门教程

3.简易命令查询 :一千行MySQL学习笔记

建议边看入门教程,边练习,在练习insert、update、select、delete等基本 *** 作的同时,将后面要用的表建好。

下图是我接下来用于演示的数据库的表。

二、准备工作(二):下载数据库对应的jar包并导入

使用JDBC需要在工程中导入对应的jar包。数据库与JDBC包的对应关系可以参考各种数据库对应的jar包、驱动类名和URL格式。在Eclipse下的导入方法:

在工程的图标上右击,选择”Properties”,在”Java Bulid Path”中选择”Add External JARs…”,选择下载并解压后获得的jar包。

如果对MySQL进行 *** 作,这时下面的import就不会报错了:

import com.mysql.jdbc.Connectionimport com.mysql.jdbc.PreparedStatement

除此以外,还需要JDBC的包,直接import即可。

import java.sql.DriverManagerimport java.sql.ResultSetimport java.sql.SQLException

三、JDBC基本 *** 作

为了简单起见,与数据库相关的 *** 作、命令、参数都被硬编码了。有兴趣的读者可以对这些进行探索,降低数据与 *** 作的耦合性。

先看具体代码并实践,本文第五部分对用到的API稍作了研究。

下面的所有方法和数据成员都在public class JDBCOperation内部。

(1)定义记录的类(可选)

这样做主要是为了便于 *** 作和接口定义,是非必须的。

static class Student {        private String Id       private String Name       private String Sex       private String Age

Student(String Name, String Sex, String Age) {            this.Id = null//default

this.Name = Name           this.Sex = Sex           this.Age = Age

}        public String getId() {            return Id

}        public void setId(String Id) {            this.Id = Id

}        public String getName() {            return Name

}        public void setName(String Name) {            this.Name = Name

}        public String getSex() {            return Sex

}        public void setSex(String Sex) {            this.Sex = Sex

}        public String getAge() {            return Age

}        public void setage(String Age) {            this.Age = Age

}

}

(2)连接的获取

在 *** 作前必须先获取与数据库的连接。

driver、url的格式同样可以参考各种数据库对应的jar包、驱动类名和URL格式。

private static Connection getConn() {

String driver = "com.mysql.jdbc.Driver"

String url = "jdbc:mysql://localhost:3306/samp_db"

String username = "root"

String password = ""

Connection conn = null   try {

Class.forName(driver)//classLoader,加载对应驱动

conn = (Connection) DriverManager.getConnection(url, username, password)

} catch (ClassNotFoundException e) {

e.printStackTrace()

} catch (SQLException e) {

e.printStackTrace()

}    return conn

}

(3)insert

private static int insert(Student student) {

Connection conn = getConn()   int i = 0

String sql = "insert into students (Name,Sex,Age) values(?,?,?)"

PreparedStatement pstmt   try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

pstmt.setString(1, student.getName())

pstmt.setString(2, student.getSex())

pstmt.setString(3, student.getAge())

i = pstmt.executeUpdate()

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}    return i

}

(4)update

private static int update(Student student) {

Connection conn = getConn()   int i = 0

String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'"

PreparedStatement pstmt   try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

i = pstmt.executeUpdate()

System.out.println("resutl: " + i)

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}    return i

}

(5)select

以select * from XXX为例。

private static Integer getAll() {

   Connection conn = getConn()

   String sql = "select * from students"

   PreparedStatement pstmt   try {

       pstmt = (PreparedStatement)conn.prepareStatement(sql)

       ResultSet rs = pstmt.executeQuery()       int col = rs.getMetaData().getColumnCount()

System.out.println("============================")       while (rs.next()) {            for (int i = 1i <= coli++) {

               System.out.print(rs.getString(i) + "\t")               if ((i == 2) &&(rs.getString(i).length() <8)) {

                   System.out.print("\t")

               }

            }

           System.out.println("")

       }

           System.out.println("============================")

   } catch (SQLException e) {

       e.printStackTrace()

   }    return null

}

(6)delete

private static int delete(String name) {

Connection conn = getConn()   int i = 0

String sql = "delete from students where Name='" + name + "'"

PreparedStatement pstmt   try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

i = pstmt.executeUpdate()

System.out.println("resutl: " + i)

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}    return i

}

四、测试

在测试前,需要在系统中打开对应数据库的服务。MySQL在Windows下的启动命令为

net start mysql

测试代码

public static void main(String args[]) {

JDBCOperation.getAll()

JDBCOperation.insert(new Student("Achilles", "Male", "14"))

JDBCOperation.getAll()

JDBCOperation.update(new Student("Bean", "", "7"))

JDBCOperation.delete("Achilles")

JDBCOperation.getAll()

}

Eclipse中的输出

============================

1    Ender        male    8    

2    Bean        male    6    

3    Petra        fema    9    

4    Peter        male    9    

5    _Graff        male    40    

6    GOD        fema    255    

============================

============================

1    Ender        male    8    

2    Bean        male    6    

3    Petra        fema    9    

4    Peter        male    9    

5    _Graff        male    40    

6    GOD        fema    255    

7    Achilles    Male    14    

============================resutl: 1resutl: 1

============================

1    Ender        male    8    

2    Bean        male    7    

3    Petra        fema    9    

4    Peter        male    9    

5    _Graff        male    40    

6    GOD        fema    255    

============================

一、准备工作(一):MySQL安装配置和基础学习

使用JDBC *** 作数据库之前,首先你需要有一个数据库。这里提供了3个链接供读者自学,如果曾有过SQL语言的使用经历(包括在学校中的课堂学习),前两个链接足以上手。

1.安装和配置:mysql安装图解 mysql图文安装教程(详细说明)

2.基本 *** 作:21分钟 MySQL 入门教程

3.简易命令查询 :一千行MySQL学习笔记

建议边看入门教程,边练习,在练习insert、update、select、delete等基本 *** 作的同时,将后面要用的表建好。

下图是我接下来用于演示的数据库的表。

二、准备工作(二):下载数据库对应的jar包并导入

使用JDBC需要在工程中导入对应的jar包。数据库与JDBC包的对应关系可以参考各种数据库对应的jar包、驱动类名和URL格式。在Eclipse下的导入方法:

在工程的图标上右击,选择”Properties”,在”Java Bulid Path”中选择”Add External JARs…”,选择下载并解压后获得的jar包。

如果对MySQL进行 *** 作,这时下面的import就不会报错了:

import com.mysql.jdbc.Connection

import com.mysql.jdbc.PreparedStatement

除此以外,还需要JDBC的包,直接import即可。

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.SQLException

三、JDBC基本 *** 作

为了简单起见,与数据库相关的 *** 作、命令、参数都被硬编码了。有兴趣的读者可以对这些进行探索,降低数据与 *** 作的耦合性。

先看具体代码并实践,本文第五部分对用到的API稍作了研究。

下面的所有方法和数据成员都在public class JDBCOperation内部。

(1)定义记录的类(可选)

这样做主要是为了便于 *** 作和接口定义,是非必须的。

static class Student {

private String Id

private String Name

private String Sex

private String Age

Student(String Name, String Sex, String Age) {

this.Id = null//default

this.Name = Name

this.Sex = Sex

this.Age = Age

}

public String getId() {

return Id

}

public void setId(String Id) {

this.Id = Id

}

public String getName() {

return Name

}

public void setName(String Name) {

this.Name = Name

}

public String getSex() {

return Sex

}

public void setSex(String Sex) {

this.Sex = Sex

}

public String getAge() {

return Age

}

public void setage(String Age) {

this.Age = Age

}

}

(2)连接的获取

在 *** 作前必须先获取与数据库的连接。

driver、url的格式同样可以参考各种数据库对应的jar包、驱动类名和URL格式。

private static Connection getConn() {

String driver = "com.mysql.jdbc.Driver"

String url = "jdbc:mysql://localhost:3306/samp_db"

String username = "root"

String password = ""

Connection conn = null

try {

Class.forName(driver)//classLoader,加载对应驱动

conn = (Connection) DriverManager.getConnection(url, username, password)

} catch (ClassNotFoundException e) {

e.printStackTrace()

} catch (SQLException e) {

e.printStackTrace()

}

return conn

}

(3)insert

private static int insert(Student student) {

Connection conn = getConn()

int i = 0

String sql = "insert into students (Name,Sex,Age) values(?,?,?)"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

pstmt.setString(1, student.getName())

pstmt.setString(2, student.getSex())

pstmt.setString(3, student.getAge())

i = pstmt.executeUpdate()

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

return i

}

(4)update

private static int update(Student student) {

Connection conn = getConn()

int i = 0

String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

i = pstmt.executeUpdate()

System.out.println("resutl: " + i)

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

return i

}

(5)select

以select * from XXX为例。

private static Integer getAll() {

Connection conn = getConn()

String sql = "select * from students"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement)conn.prepareStatement(sql)

ResultSet rs = pstmt.executeQuery()

int col = rs.getMetaData().getColumnCount()

System.out.println("============================")

while (rs.next()) {

for (int i = 1i <= coli++) {

System.out.print(rs.getString(i) + "\t")

if ((i == 2) &&(rs.getString(i).length() <8)) {

System.out.print("\t")

}

}

System.out.println("")

}

System.out.println("============================")

} catch (SQLException e) {

e.printStackTrace()

}

return null

}

(6)delete

private static int delete(String name) {

Connection conn = getConn()

int i = 0

String sql = "delete from students where Name='" + name + "'"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

i = pstmt.executeUpdate()

System.out.println("resutl: " + i)

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

return i

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6098959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存