其他分享
首页 > 其他分享> > 2021-07-16

2021-07-16

作者:互联网

封装jdbc的驱动加载、连接、关闭

package cn.tedu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 工具类,封装jdbc的驱动加载、连接、关闭
 */
public class jdbcUtil {
    //成员变量
    private static String className = "com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/tedu_store?useUnicode=true&characterEncoding=utf-8";
    private static String user = "root";
    private static String password = "123456";
    /**
     * 加载驱动
     */
    static {
        try{
            Class.forName(className);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * 创建连接
     */
    public static Connection getConn() throws SQLException {
        Connection conn = DriverManager.getConnection(url,user,password);
        return conn;
    }
    /**
     * 关闭连接
     */
    public static void release(Connection conn){
        if(conn != null){
            try {
                conn.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws SQLException {
        Connection conn = jdbcUtil.getConn();
        System.out.println(conn);
    }
}

模拟商城登录功能

package cn.tedu.jdbc.jdbc;

import cn.tedu.jdbc.util.jdbcUtil;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 模拟商城登录功能
 */
public class Demo01 {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            //驱动加载,建立连接
            conn = jdbcUtil.getConn();
            //2.SQL
            String sql = "SELECT *FROM tedu_user where username = '木木子'";
            Statement st = conn.createStatement();
            //3.返回结果集对象
            ResultSet rs = st.executeQuery(sql);
            //4.处理结果集
            if (rs.next()){
                System.out.println("登陆成功!跳转到首页。");
            }else {
                System.out.println("用户名或密码错误,请联系管理员!");
            }
        }catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {//总会执行!!!
            //5.关闭连接
            jdbcUtil.release(conn);
        }
    }
}

在模拟基础上增加类似于浏览器输入用户名与密码的功能

package cn.tedu.jdbc.jdbc;

import cn.tedu.jdbc.util.JdbcUtil;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

/**
 * 模拟商城登录功能
 */
public class Demo01 {
    public static void main(String[] args) {
        //类似于在浏览器输入用户名与密码
        Scanner sc = new Scanner(System.in);
        System.out.println("用户名:");
        String username = sc.nextLine();
        System.out.println("密码:");
        String password = sc.nextLine();

        Connection conn = null;
        try {
            //驱动加载,建立连接
            conn = JdbcUtil.getConn();
            //2.SQL
            String sql = "SELECT *FROM tedu_user where username ='"+username+"'and password ='"+password+"'";
            Statement st = conn.createStatement();
            //3.返回结果集对象
            ResultSet rs = st.executeQuery(sql);
            //4.处理结果集
            if (rs.next()){
                System.out.println("登陆成功!跳转到首页。");
            }else {
                System.out.println("用户名或密码错误,请联系管理员!");
            }
        }catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {//总会执行!!!
            //5.关闭连接
            JdbcUtil.release(conn);
        }
    }
}

关于上面代码不安全性问题

在这里插入图片描述

package cn.tedu.jdbc.jdbc;

import cn.tedu.jdbc.util.JdbcUtil;

import java.sql.*;
import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("用户名:");
        String username = sc.nextLine();
        System.out.println("密码:");
        String password = sc.nextLine();

        Connection conn = null;
        try {
            conn = JdbcUtil.getConn();
            String sql = "SELECT * FROM tedu_user WHERE username=? AND password=?";//此修改问号
            PreparedStatement ps = conn.prepareStatement(sql);//prepareStatement();
            //装载占位符
            ps.setString(1,username);
            ps.setString(2,password);
            Statement st = conn.createStatement();
            ResultSet rs = ps.executeQuery();//这里调用啥改为啥
            if (rs.next()){
                System.out.println("登陆成功!跳转到首页。");
            }else {
                System.out.println("用户名或密码错误,请联系管理员!");
            }
        }catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JdbcUtil.release(conn);
        }
    }
}

项目中JDBC实现:

1、账号管理模块
*注册
*登录
*修改密码
*修改手机号、邮箱
*查询账号是否被占用
*查询邮箱是否已经存在
*查询手机号是否已经存在

2、地址管理模块
*保存地址
*设置地址是否为默认的地址
*查询登录账号的地址信息
*修改地址
*删除地址

3、购物车管理模块
*查询登录账号中购物车的信息
*修改购物车中某条信息包含的商品数量
*删除一条购物车中商品的信息
*删除多条购物车中商品的信息
*查询用户选择的商品在购物车中是否存在
*添加购物车中商品的信息

4、订单管理模块
*分页查询订单

5、收藏夹模块
*添加商品信息到收藏夹
*查询收藏夹中的商品
*删除收藏夹中的商品

6、定位模块
*百度地图 / 高德地图 / 腾讯地图 查看API学习

实体类 User

建包:
*cn.tedu.shopping.entity
*cn.tedu.shopping.dao
*cn.tedu.shopping.util

开发思路:
根据数据库表,开发实体类对象
根据页面功能,开发Dao
测试Dao

企业开发

//未写完

标签:java,07,16,2021,sql,import,tedu,conn,String
来源: https://blog.csdn.net/qq_45799253/article/details/118784726