package fengke.test;
import java.sql.SQLException;
import fengke.action.Action;
/**
* 最为简单Jdbc操作方式
* @author 锋客
* 学习重点:1.了解jdbc的创建过程;
* 2.学会使用静态属性和静态块创建链接======Jdbc
* 3.了解使用静态块创建链接的特点:控制台中输出的链接为同一个
* 4.学会配置url======"jdbc:mysql://127.0.0.1:3309/jdbctest?useUnicode=true&characterEncoding=utf-8"
* 5.学会数据库的操作=====add,listall
* 6.学会合理利用模型=====Emp
* 7.注意驱动的加载
*
*/
public class Test {
public static void main(String[] args) throws SQLException {
Action action = new Action();
System.out.println("添加员工信息:");
action.addEmp();
System.out.println("查询所有员工信息:");
action.listAll();
}
}
=====================================================================================
package fengke.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 创建数据库连接
* @author 锋客
* 内容:使用静态的方法,产生链接对象,调用方法,返回对象
*/
public class Jdbc {
/*
* 通过静态方法的特点,当对象被使用时,先调用或是生成静态内容
* 产生Connection链接,并通过public Connection getConnection();方法
* 返回链接
*
* 注意一下:
* 静态方法创建的链接对象,生成只有一次(第一次调用Jdbc时),但是被多次调用,因此每次输出的链接对象都一样
*/
static private Connection connection;
static{
try {
Class.forName("com.mysql.jdbc.Driver");
//URL地址"jdbc:mysql://主机地址/操作的数据库名?useUnicode=true&characterEncoding=utf-8"
String url="jdbc:mysql://127.0.0.1:3309/jdbctest?useUnicode=true&characterEncoding=utf-8";
//mysql的用户名
String userName="root";
//mysql的密码
String passWord="root";
//创建链接
connection=DriverManager.getConnection(url, userName, passWord);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection(){
//测试是否生成正确的connect
System.out.println(connection);
return connection;
}
}
======================================================================================
package fengke.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import fengke.jdbc.Jdbc;
import fengke.model.Emp;
/**
* 数据库操作
*
* @author 锋客
* 内容:1、获得数据库链接 2、操作数据库
*
*/
public class JdbcDao {
private Jdbc jdbc = new Jdbc();
// 实现添加数据的功能
public void addEmp(Emp emp) throws SQLException {
// 获得数据库链接对象
Connection connection = jdbc.getConnection();
// 进行数据库操作
String sql = "insert into emp(id,name,sex) values(?,?,?)";
// 设置操作内容
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, emp.getId());
statement.setString(2, emp.getName());
statement.setString(3, emp.getSex());
int rs = statement.executeUpdate();
System.out.println("添加成功"+rs+"条记录");
}
// 实现查询数据的功能
public void listAll() throws SQLException {
// 获得数据库链接对象
Connection connection = jdbc.getConnection();
// 进行数据库操作
String sql="select*from emp";
PreparedStatement statement=connection.prepareStatement(sql);
ResultSet rs = statement.executeQuery();
while(rs.next()){
System.out.println(rs.getInt(1)+"|"+rs.getString(2)+"|"+rs.getString(3));
}
System.out.println("结束输出!!!");
}
}
======================================================================================
package fengke.action;
import java.sql.SQLException;
import java.util.Random;
import fengke.dao.JdbcDao;
import fengke.model.Emp;
/**
* 功能层
* @author 锋客
* 实现添加和查询的功能
*
*/
public class Action {
public void addEmp() throws SQLException{
//通过循环将信息输入到数据库中
for(int i=1;i<10;i++){
String name="fengke"+i;
System.out.println(name);
Emp emp=new Emp(i,name,"man");
JdbcDao dao=new JdbcDao();
dao.addEmp(emp);
}
}
public void listAll() throws SQLException{
JdbcDao dao=new JdbcDao();
dao.listAll();
}
}
=================================================================================
package fengke.model;
/**
* 模型
* @author 锋客
* 内容:员工的基本信息
*/
public class Emp {
private int id;//员工id
private String name;//员工姓名
private String sex;//员工性别
public int getId() {
return id;
}
public void setId(int 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 Emp() {
super();
// TODO Auto-generated constructor stub
}
//生成员工对象
public Emp(int id, String name, String sex) {
super();
this.id = id;
this.name = name;
this.sex = sex;
}
}