(—)通过mysql workbench 创建一个数据库,在这里命名为company,然后建一个tb_employee表

(二)以下是java代码对表tb_employee的操作

1 创建一个Employee类,包括员工的一些信息,如  id  name age sex

2创建DatabaseConnection类,用于数据库的连接

3创建一个EmployeeOperation类,用于操作数据库,它里面包括了 以下方法

(1)getInstance()   //返回EmployeeOperation类实例的静态方法

(2)saveEmployee(Employee emp)   //向数据库中加入数据

(3)selectEmployee()        //从数据库中查询所需数据

(4)updateEmployee(Employee emp)  //根据员工的编号更改员工的年龄信息

(5)deleteEmployeeById(Employee emp)  //根据员工id删除员工

4创建测试类

各个类的代码如下

 package 数据库_向数据库插入数据;
//尽量将属性定义为私有的,写出对应的setXXX和getXXX的方法
public class Employee {
private int empId;
private String empName;
private int empAge;
private String empSex; public Employee(){} public int getEmpId() {
return this.empId;
}
public void setEmpId(int id) {
this.empId = id;
} public String getEmpName() {
return this.empName;
}
public void setEmpName(String name) {
this.empName = name;
} public int getEmpAge() {
return this.empAge;
}
public void setEmpAge(int age) {
this.empAge = age;
} public String getEmpSex() {
return this.empSex;
}
public void setEmpSex(String sex) {
this.empSex = sex;
} }
 package 数据库_向数据库插入数据;

 import java.sql.Connection;
import java.sql.DriverManager; public class DatabaseConnection {
private static Connection conn = null;
public static Connection getCon() {
try {
Class.forName("com.mysql.jdbc.Driver"); //加载数据库连接驱动
String user = "root";
String psw = "XXX"; //XXX为自己的数据库的密码
String url = "jdbc:mysql://localhost:3306/ZZZ"; //ZZZ为连接的名字
conn = DriverManager.getConnection(url, user, psw); //获取连接
} catch (Exception e) {
System.out.println("连接数据库失败");
e.printStackTrace();
}
return conn;
} }
 package 数据库_向数据库插入数据;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; //EmployeeOperation类用于操作数据库,单例模式。
public class EmployeeOperation {
private static EmployeeOperation instance = new EmployeeOperation(); public static EmployeeOperation getInstance() { return instance;
}

     private EmployeeOperation() {
}
public boolean saveEmployee(Employee emp) { //向数据库中加入数据
boolean result = false;
Connection conn = null;
try { conn = DatabaseConnection.getCon(); //建立数据库连接
String sqlInset = "insert into company.tb_employee(empId, empName, empAge, empSex) values(?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sqlInset); //会抛出异常 stmt.setInt(1, emp.getEmpId()); //设置SQL语句第一个“?”的值
stmt.setString(2, emp.getEmpName()); //设置SQL语句第二个“?”的值
stmt.setInt(3, emp.getEmpAge()); //设置SQL语句第三个“?”的值
stmt.setString(4, emp.getEmpSex()); //设置SQL语句第四个“?”的值
int i = stmt.executeUpdate(); //执行插入数据操作,返回影响的行数
if (i == 1) {
result = true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally { //finally的用处是不管程序是否出现异常,都要执行finally语句,所以在此处关闭连接
try {
conn.close(); //打开一个Connection连接后,最后一定要调用它的close()方法关闭连接,以释放系统资源及数据库资源
} catch(SQLException e) {
e.printStackTrace();
}
} return result; } public List<Employee> selectEmployee() { //从数据库中查询所需数据
List<Employee> empList = new ArrayList<Employee>();
Connection conn = null;
try {
conn = DatabaseConnection.getCon();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from company.tb_employee");//执行SQL并返回结果集
while (rs.next()) {
Employee emp = new Employee();
emp.setEmpId(rs.getInt("empId")); //从结果集rs中获取内容时,若为字符串类型的,用rs.getString("string")方法
emp.setEmpName(rs.getString("empName")); //其中str为想要从 数据库的 表 中获取的信息
emp.setEmpAge(rs.getInt("empAge")); //若为int类型,用rs.getInt(number);
emp.setEmpSex(rs.getString("empSex"));
empList.add(emp);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close(); //关闭连接
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return empList; //返回结果
} public boolean updateEmployee(Employee emp) { //根据员工的编号更改员工的年龄信息
boolean result = false;
Connection conn = null;
try {
conn = DatabaseConnection.getCon();
String sql = "update company.tb_employee set empAge=? where empId=?"; //update语句
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, emp.getEmpAge()); //设置SQL语句第一个"?"的参数值
stmt.setInt(2, emp.getEmpId()); //设置SQL语句第二个"?"的参数值
int flag = stmt.executeUpdate(); //执行修改操作,返回影响的行数
if (flag == 1) { //修改成功返回true
result = true;
}
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
} public boolean deleteEmployeeById(Employee emp) {
boolean result = false;
Connection conn = null;
try {
conn = DatabaseConnection.getCon();
String sql = "delete from company.tb_employee where empId = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, emp.getEmpId());
int i = stmt.executeUpdate();
if (i == 1) {
result = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
} }
 package 数据库_向数据库插入数据;

 public class MainTest {
public static void main(String[] args) { //测试向数据库的表中插入元素的方法
Employee emp = new Employee();
emp.setEmpId(2);
emp.setEmpName("LILEI");
emp.setEmpAge(33);
emp.setEmpSex("male");
boolean res = EmployeeOperation.getInstance().saveEmployee(emp);
if (res == true) {
System.out.println("向company.tb_employee表中插入数据成功");
} else {
System.out.println("向company.tb_employee表中插入数据失败");
}
} }
 package 数据库_向数据库插入数据;

 import java.util.List;

 public class SelectMainTest {     //测试从数据库中获取数据的方法
public static void main(String[] args) {
List<Employee> empList = EmployeeOperation.getInstance().selectEmployee();
System.out.println("员工ID\t员工姓名\t员工年龄\t员工性别");
for (Employee emp : empList) {
System.out.print(emp.getEmpId() + "\t" + emp.getEmpName() + "\t" + emp.getEmpAge() + "\t" + emp.getEmpSex());
System.out.println();
}
} }
 package 数据库_向数据库插入数据;

 import java.util.List;

 public class UpdateMainTest {    //根据员工的id修改员工年龄的方法
public static void main(String[] args) {
List<Employee> empList = EmployeeOperation.getInstance().selectEmployee();
System.out.println("员工ID");
for (Employee emp : empList) {
System.out.println(emp.getEmpId());
}
Employee emp = new Employee();
emp.setEmpId(2);
emp.setEmpAge(50);
boolean res = EmployeeOperation.getInstance().updateEmployee(emp);
if (res) {
System.out.println("编号为2的员工的年龄修改成功");
} else {
System.out.println("编号为2的员工的年龄修改失败");
} } }
 package 数据库_向数据库插入数据;

 public class DeleteMainTest {
public static void main(String[] args) { //测试删除对应id的员工的方法
Employee emp = new Employee();
emp.setEmpId(1);
boolean res = EmployeeOperation.getInstance().deleteEmployeeById(emp);
if (res) {
System.out.println("成功删除id为1的员工");
} else {
System.out.println("未能成功删除id为1的员工");
}
} }

以上代码经个人亲测,想要运行上述代码的同学注意一下

1 DatabaseConnection类中用户名和密码要改一下,

2 在数据库中建立的表的名字 以及表的各个列的名字需要一致

3 在JAVA工程中要引入 mysql-connector-java-5.1.34-bin.jar,如下图所示

JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作的更多相关文章

  1. MongoDB中的映射,限制记录和记录拼排序 文档的插入查询更新删除操作

    映射 在 MongoDB 中,映射(Projection)指的是只选择文档中的必要数据,而非全部数据.如果文档有 5 个字段,而你只需要显示 3 个,则只需选择 3 个字段即可. find() 方法 ...

  2. Java中list如何利用遍历进行删除操作

    转: Java中list如何利用遍历进行删除操作 2018年03月31日 10:23:41 Little White_007 阅读数:3874   Java三种遍历如何进行list的便利删除: 1.f ...

  3. python操作txt文件中数据教程[4]-python去掉txt文件行尾换行

    python操作txt文件中数据教程[4]-python去掉txt文件行尾换行 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文章 python操作txt文件中数据教程[1]-使用pyt ...

  4. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  5. python操作txt文件中数据教程[2]-python提取txt文件

    python操作txt文件中数据教程[2]-python提取txt文件中的行列元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果-将txt中元素提取并保存在c ...

  6. python操作txt文件中数据教程[1]-使用python读写txt文件

    python操作txt文件中数据教程[1]-使用python读写txt文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果 程序实现 filename = '. ...

  7. Android Sqlite数据库执行插入查询更新删除的操作对比

    下面是在Android4.0上,利用Sqlite数据库的insert,query,update,delete函数以及execSql,rawQuery函数执行插入,查询,更新,删除操作花费时间的对比结果 ...

  8. Oracle11g中数据的倒库和入库操作以及高版本数据导入低版本数据可能引发的问题

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具 ...

  9. 由mysql数据库基础上的php程序实现单词的查询、删除、更改和查询

    我做了一个php程序,将表单数据添加到数据库,借用mysql扩展库函数实现对mysql数据库的操作,能够实现添加单词.删除单词.更新和查询单词.运行环境是普通的mysql数据库和php.Apache服 ...

  10. phpstudy命令行中数据表插入中文显示不了的问题

    在PHPstudy环境下,做MySQL操作,往数据表里面插入数据的时候,如果是中文的数据就会显示不了或者是问号?. 这个问题搞了我一晚上了,终于知道问题所在. 下载的PHPstudy的MySQL数据库 ...

随机推荐

  1. SE 2014 年4月21日(二)

    实验练习: 如图配置: 两BGP自治系统,要求建立相关BGP邻居关系 1. 建立BGP邻居关系 要求使用BGP对等体组完成(IBGP要求使用loopback接口作为TCP建立的源接口) 2. R3 R ...

  2. SWT中的Tree中 添加右键弹出菜单

    先看一下效果: 如图:在树上单击鼠标右键会弹出 弹出式菜单.做法其实很简单,先做一个树: final TreeViewer treeViewer = new TreeViewer(group, SWT ...

  3. java获取当前日期时间代码总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值.  方法如下: 要使用 java.util.Date .获取当前时间的代码如下  代码如下 复制代码 Date date = new ...

  4. js检测浏览器中是否安装了flash播放插件

    这两天工作中需要在网页中嵌入flash小游戏,我使用的是swfobject.js version:1.5.其他方面都很好,唯独版本检测这里一直没有搞通,后来实在无奈之下,改用js来检测浏览器的flas ...

  5. ecshop后台权限增加

    1.在后台“推荐管理”里添加“推荐人分成”.“会员分成”两个操作功能以及权限     index.php?act=menu     incluedes/inc_priv.php:权限对照表.inc_m ...

  6. dede 首页或列表页调用文章内容页body内容

    在使用dede过程,有的朋友会调调出文章的列表的内容出来,怎么调呢?当然是用dede的传参的数据查询语句了,方法如下: {dede:arclist flag=h typeid=2 row=1 titl ...

  7. mysql 利用触发器(Trigger)让代码更简单

    一,什么触发器 1,个人理解 触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了.你放炮仗,点燃了,一会就炸了. 2,官方定义 触发器 ...

  8. 【Unity3D自学记录】利用代码改动图片属性(Inspector)

    这段时间一直都在打包资源,然后每次导入都要改图片的属性.真是麻烦,所以一直在寻找一键改动而且打包的方法. 最终让我找到了,太坑人了. 依据自己的需求改代码哦,相信大家都能看明确. 核心部分: Text ...

  9. WPF换肤之一:创建圆角窗体

    原文:WPF换肤之一:创建圆角窗体 我们都期望自己的软件能够有一套看上去很吸引人眼球的外衣,使得别人看上去既专业又有美感.这个系列就带领着大家一步一步的讲解如何设计出一套自己的WPF的窗体皮肤,如果文 ...

  10. LDAPserver的安装

    源代码安装,以root用户进行 由于:由于openldap须要用Berkeley DB来存放数据,所以要先安装所以需先安装Berkeley DB 4.2.52数据库. 一 安装Berkeley DB ...