Jdbc的基本创建过程

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;
 }
 

}

posted on 2015-10-28 00:18  锋客person  阅读(345)  评论(0编辑  收藏  举报