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

    }

  • 相关阅读:
    HTML5的智能提示在VisualStudio2010
    浏览器的缓存机制
    等待资源(wait_resource)解码(完整版)
    对quartz的总结
    利用Spring动态对Quartz定时任务管理
    Tomcat源码分析(一)服务启动
    深入分析 Java 中的中文编码问题
    企业搜索引擎开发之连接器connector(一)
    SpringQuartz (一)
    Quartz 项目应用笔记
  • 原文地址:https://www.cnblogs.com/fengke/p/4916109.html
Copyright © 2020-2023  润新知