【笔记】手写JDBC的整个过程

12 篇文章 0 订阅
4 篇文章 0 订阅

一、 JDBC:通过java与数据库交互。

  1. 注册数据库驱动
    Class.forName("com.mysql.jdbc.Driver");

  2. 取得数据库连接对象Connection
    Connection conn=DriverManager.getConnection(url,user,password);

  3. 创建SQL执行对象
    4.1 编写sql语句sql = ...;
    4.2 获得语句执行对象
    PrepardStatement ps = conn.getprepareStatement(sql);

  4. 执行SQL命令,并返回结果
    4.1 增删改操作
    ps.executeUpdate();
    4.2 返回结果集
    ResultSet rs = ps.executeQuery();

  5. 处理结果
    while(rs.next()){ rs.getString(int i); }

  6. 依次关闭结果
    rs.close(); ps.close(); conn.close();

二、数据源

因为每次都要创建数据库连接,使用完后又关闭,所以很耗资源。
数据源:每当需要连接时,就从连接池中获取,使用完之后,放回连接池

使用C3P0数据源
使用步骤:

  1. 导入jar包
    mysql-connector-java-5.1.36-bin.jar
    c3p0-0.9.1.2.jar
  2. 编写配置文件
    src/c3p0-config.xml
  3. 调用api
    // 创建c3p0数据源(连接池)
    DataSource ds = new ComboPooledDataSource();
    获取连接对象: ds.getConnection()
    把连接对象放回连接池中: conn.close();

三、登录案例

  1. 导入jar包
  2. 创建项目基本包框架
  3. 前端页面
  4. 创建servlet:
    创建一个类继承HttpServlet
    在web.xml中注册servlet
<servlet>
	<servlet-name>helloservlet</servlet-name>
	<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>helloservlet</servlet-name>
	<url-pattern>/helloservlet</url-pattern>
</servlet-mapping>
  1. 重写doGet() doPost()方法
    doPost方法调用doGet方法
    servlet:主要用来获取请求中的数据,调用业务逻辑,最后分发转向
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	String name = request.getParameter("name");
	String password = request.getParameter("password");
	
	try {
		UserService us = new UserServiceImpl();
		User user = us.findUser(name,password);
		if(user==null){
			response.getWriter().print("name or password error");
		}else{
			response.getWriter().print("welcome:"+user.getName()+"");
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
}

完整代码示例:

import java.sql.DriverManager;
import java.sql.Exception;

public class jdbctest{
    public static void main(String[] args) {
        query();
    }
    
    public static void query() {
        java.sql.Connection conn = null;
        try{
            //1.加载数据驱动
            class.forName("com.mysql.jdbc.Driver");
            //2.获得数据库连接
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc_db", "root", "1234");
            //3.创建语句
            String sql = "select * from UserTbl";
            //返回一个执行sql的句柄
            java.sql.Statement stmt = conn.createStatement();
            //4.执行查询
            java.sql.ResultSet rs = stmt.executeQuery(sql);
            //5.遍历结果
            while(rs.next) {
                int id = re.getInt(1);
                String username = re.getString(2);
                String password = rs.getString(3);
                int age = rs.getInt(4);
                System.out.println(id + username + password + age);
            }
        } catch(Exception e) {
            e.printStackTrace();
        } finally {
            //6.关闭数据库连接
            if(conn != null) {
                try{
                    conn.close();
                }catch(SQLException e) {
                    conn = null;
                    e.printStackTrace();
                }
            }
        }
    }
}

四、mvc开发模式

m: model 模型 一般都是javabean
v: view 视图 jsp
c: controller 核心控制 servlet

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值