目录
分层
controller层
Show.java代码如下:
package xyz.jrkang.controller;
import java.util.ArrayList;
import java.util.Scanner;
import xyz.jrkang.dao.EmpinfoDao;
import xyz.jrkang.dao.impl.EmpinfoDaoImpl;
import xyz.jrkang.model.Empinfo;
public class Show {
public static void main(String[] args) {
System.out.println("----------请选择----------");
System.out.println("----------1:显示所有客户信息----------");
System.out.println("----------2:新增客户----------");
System.out.println("----------3:修改某个客户信息----------");
Scanner scan = new Scanner(System.in);
int select = scan.nextInt();
EmpinfoDao empinfoDao = new EmpinfoDaoImpl();
if (select == 1) {
System.out.println("你选择了查询所有客户信息");
ArrayList<Empinfo> empinfoList = empinfoDao.select();
for (Empinfo empinfo : empinfoList) {
System.out.println(empinfo.toString());
}
} else if (select == 2) {
System.out.println("你选择了新增客户");
// 解决一个问题 --> 输入以下这些数据,从控制台输入
Scanner addScan = new Scanner(System.in);
System.out.print("姓名:");
String name = addScan.nextLine();
System.out.print("性别:");
String sex = addScan.nextLine();
System.out.print("年龄:");
int age = addScan.nextInt();
System.out.print("职务:");
String zhiwu = addScan.nextLine();
Empinfo empinfo = new Empinfo(name, sex, age, zhiwu);
int count = empinfoDao.insert(empinfo);
if (count > 0)
System.out.println("新增客户成功");
else
System.out.println("新增客户失败");
addScan.close();
} else if (select == 3) {
System.out.println("你选择了修改客户");
Scanner updateScan = new Scanner(System.in);
System.out.print("姓名:");
String name = updateScan.nextLine();
System.out.print("性别:");
String sex = updateScan.nextLine();
System.out.print("职务:");
String zhiwu = updateScan.nextLine();
System.out.print("年龄:");
int age = updateScan.nextInt();
System.out.print("客户ID:");
int id = updateScan.nextInt();
Empinfo empinfo = new Empinfo(id, name, sex, age, zhiwu);
int count = empinfoDao.update(empinfo);
if (count > 0)
System.out.println("修改客户成功");
else
System.out.println("修改客户失败");
updateScan.close();
}
scan.close();
}
}
dao层
EmpinfoDaoImpl.java代码如下:
package xyz.jrkang.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import xyz.jrkang.dao.EmpinfoDao;
import xyz.jrkang.model.Empinfo;
import xyz.jrkang.util.DBHelper;
public class EmpinfoDaoImpl implements EmpinfoDao {
@Override
public int insert(Empinfo empinfo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DBHelper.getConn();
String sql = "INSERT INTO student VALUES (?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, empinfo.getEname());
ps.setString(2, empinfo.getSex());
ps.setInt(3, empinfo.getAge());
ps.setString(4, empinfo.getZhiwu());
int count = ps.executeUpdate();
return count;
} catch (SQLException e) {
System.out.println("插入有问题");
return 0;
} finally {
DBHelper.close(conn, ps, null);
}
}
@Override
public int update(Empinfo empinfo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DBHelper.getConn();
String sql = "update student set ename = ? ,sex = ? ,age = ? ,zhiwu = ?, where empid = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, empinfo.getEname());
ps.setString(2, empinfo.getSex());
ps.setInt(3, empinfo.getAge());
ps.setString(4, empinfo.getZhiwu());
ps.setInt(5, empinfo.getEmpid());
int count = ps.executeUpdate();
return count;
} catch (SQLException e) {
System.out.println("更新有问题");
return 0;
} finally {
DBHelper.close(conn, ps, null);
}
}
@Override
public ArrayList<Empinfo> select() {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement ps = null;
ArrayList<Empinfo> empinfoList = new ArrayList<Empinfo>();
try {
conn = DBHelper.getConn();
String sql = "select * from empinfo";
ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Empinfo empinfo = new Empinfo();
empinfo.setEmpid(rs.getInt("empid"));
empinfo.setEname(rs.getString("ename"));
empinfo.setSex(rs.getString("sex"));
empinfo.setAge(rs.getInt("age"));
empinfo.setZhiwu(rs.getString("zhiwu"));
empinfoList.add(empinfo);
}
} catch (SQLException e) {
System.out.println("查询有问题");
} finally {
DBHelper.close(conn, ps, null);
}
return empinfoList;
}
}
EmpinfoDao代码如下:
package xyz.jrkang.dao;
import java.util.ArrayList;
import xyz.jrkang.model.Empinfo;
public interface EmpinfoDao {// 接口是什么? 就是一组规范 只定义了方法名称 返回值类型 参数并没有方法的具体实现
int insert(Empinfo empinfo);
// 改
/**
* 修改Empinfo数据库中的数据,返回受影响的行数
*
* @param Empinfo
* @return
*/
int update(Empinfo empinfo);
// 查
/**
* 查询所有数据到ArrayList集合中
*
* @return
*/
ArrayList<Empinfo> select();
}
model层
Empinfo代码如下:
package xyz.jrkang.model;
public class Empinfo {
private int empid;
private String ename;
private String sex;
private Integer age;
private String zhiwu;
public int getEmpid() {
return empid;
}
public void setEmpid(int empid) {
this.empid = empid;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getZhiwu() {
return zhiwu;
}
public void setZhiwu(String zhiwu) {
this.zhiwu = zhiwu;
}
public Empinfo() {
super();
}
public Empinfo(int empid, String ename, String sex, Integer age, String zhiwu) {
super();
this.empid = empid;
this.ename = ename;
this.sex = sex;
this.age = age;
this.zhiwu = zhiwu;
}
public Empinfo(String ename, String sex, Integer age, String zhiwu) {
super();
this.ename = ename;
this.sex = sex;
this.age = age;
this.zhiwu = zhiwu;
}
@Override
public String toString() {
return "Empinfo [empid=" + empid + ", ename=" + ename + ", sex=" + sex
+ ", age=" + age + ", zhiwu=" + zhiwu + "]";
}
}
service层
util层
链接数据库
DBHelper.java代码如下:
package top.jrkang.util;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DBHelper {
private static String driver;
private static String url;
private static String name;
private static String pwd;
static {// 静态代码块 --什么时候运行? 这个类加载的时候就运行
System.out.println("DBHelper static 代码段运行了....");
Properties properties = new Properties();
try {
// 从当前路径中加载文件到Properties
properties.load(DBHelper.class
.getResourceAsStream("info.properties"));
driver = properties.getProperty("driver");
url = properties.getProperty("url");
name = properties.getProperty("name");
pwd = properties.getProperty("pwd");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConn() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, name, pwd);
} catch (ClassNotFoundException e) {
System.out.println("这是DBHelper类中加载驱动程序时找不到驱动程序类!");
} catch (SQLException e) {
System.out.println("获取连接失败!");
}
return conn;
}
public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
try {
if (conn != null)
conn.close();
if (ps != null)
ps.close();
if (rs != null)
rs.close();
} catch (SQLException e) {
System.out.println("资源关闭失败!");
}
}
}
info.properties
创建一个info.properties文件,用来连接数据库。
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc\:sqlserver\://127.0.0.1\:1433;databaseName\=empdb
name= //这里输入数据库用户名
pwd= //这里输入你的数据库密码
运行结果
如下图