JDBC的初步使用详解

一 认识、配置、使用Maven

简述Maven

①管理项目jar包的一个工具
②使用jar包更加便捷
③任何web开发都会用到

如何下载Maven

1.在官网中下载maven包,Maven官网

新建一个文件夹,把下载好的放进去,然后进行解压,我的是这样的。
在这里插入图片描述
2,.下载好后我们,进行配置环境变量(这和配置jdk的方式是一样的)
1)新建系统变量:MAVEN_HOME
变量值:D:\repository\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\apache-maven-3.5.0
(2)编辑系统变量:Path
添加变量值:%MAVEN_HOME%\bin

3.配置好后,检查一下看是否配置成功:用win键+R,进入dos命令,输入mvn -v,出现如下信息则表明成功!
在这里插入图片描述

初步使用Maven(另一种方式)

(1)首先对apache-maven-3.5.0-bin.rar解压
(2)配置conf文件夹下的settings.xml
(3)对本地仓库配置localRepository
在这里插入图片描述
(4)配置阿里镜像服务器mirrors标签内部
在这里插入图片描述
(5)上面都弄好以后,配置到Eclipse中,进入Eclipse
(6)找到preference中的maven>installation中配置解压路径
在这里插入图片描述
(7)配置用户设置(配置的是当前工作区间,maven项目创建需要的jar本地来源)
在这里插入图片描述
这样Maven就配置好了!!

初步了解JDBC,JDBC详细步骤

1.加载数据库驱动

// 1. 加载驱动
Class.forName(“com.mysql.jdbc.Driver”);

2.建立链接(Connection)
Jdbc程序中的Connection,它用于代表数据库的链接,Collection是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过connection对象完成的,创建方法为:
Connection conn = DriverManager.getConnection(url,user,pass);
这个对象的常用方法:

方法描述
createStatement()创建向数据库发送sql的statement对象。
prepareStatement(sql)创建向数据库发送预编译sql的PrepareSatement对象。
prepareCall(sql)创建执行存储过程的callableStatement对象。
setAutoCommit(boolean autoCommit)设置事务是否自动提交。
commit()在链接上提交事务。
rollback()在此链接上回滚事务。

// 2. 建立连接(?useSSL=false如果版本过高,可以用这个,jdk1.8版本的,可以不使用,我的是jdk11,版本过高 )
Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db_xiaoli?useSSL=false”, “root”, “123456”);
System.out.println(con);

3.获取预定义对象(书写SQL)
PreperedStatement是Statement的孩子,它的实例对象可以通过调用:
PreperedStatement st = conn.preparedStatement();

// 3. 预处理sql语句,查询出最近写的10篇博客的标题及摘要,展示到控制台
PreparedStatement pst = con.prepareStatement(“select * from t_p1_blog limit 10”);

4.执行SQL
Statement对象常用方法:

方法含义
executeQuery(String sql)用于向数据发送查询语句。
executeUpdate(String sql)用于向数据库发送insert、update或delete语句
execute(String sql)用于向数据库发送任意sql语句
addBatch(String sql)把多条sql语句放到一个批处理中。
executeBatch()向数据库发送一批sql语句执行。

// 4. 执行sql语句
ResultSet rs = pst.executeQuery();

5.处理SQL执行完的结果

// 5. 处理sql语句执行的结果
while (rs.next()) {
System.out.println(rs.getInt(“bid”) + “::” + rs.getString(“title”) + “::” + rs.getString(“summary”));
}

6.释放资源
释放资源顺序 :
①释放结果集的资源
②释放预定义对象的
③释放连接

// 6. 释放资源(连接,结果集、预定义对象)
rs.close();
pst.close();
con.close();

Maven和eclipse一起使用的注意事项

(1)maven的使用是必须要联网的
(2)MySQL5.1.44版本是jdk8匹配的
(3)上一次创建没有成功,在本地仓库中遗留了jar,但是jar又是缺省,解决方案就是删除/清空本地仓库的所有jar包
(4)个别电脑会出现SSL相关问题,解决方案在URL后拼接useSSL=fasle
(5)IDEA使用,MySQL的pom导入工程,工程中pom报红
产生原因:网络不稳定
解决办法:删除原有本地仓库相关的jar包
(6)包导错误的问题Connection…

二 用工具类封装JDBC

用工具类封装JDBC需要建不同的包来执行不同的类的代码
1.需要装实体类的包(entity)

public class Blog {
private int bid;
private String title;
private String summary;
public Blog(int bid, String title, String summary) {
super();
this.bid = bid;
this.title = title;
this.summary = summary;
}
public Blog() {
super();
}
public int getBid() {
return bid;
}
public void setBid(int bid) {
this.bid = bid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
@Override
public String toString() {
return “Blog [bid=” + bid + “, title=” + title + “, summary=” + summary + “]”;
}

}

2.装数据库的包,一般是(dao)包

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.newer.jdbc01.entity.Blog;
import com.newer.jdbc01.utils.DBAccess;
public class BlogDao extends BaseDao{
// 第三个版本
public List list() throws Exception{
return super.executeQuery(“select * from t_p1_blog limit 10”, Blog.class);
}
public static void main(String[] args) throws Exception {
BlogDao blogDao = new BlogDao();
List list = blogDao.list();
for (Blog b : list) {
System.out.println(b);
}
}
}

3.封装工具类的工具包(utils)

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DBAccess {
// 加载驱动
private static String driver;
private static String url;
private static String userName;
private static String password;
static {
InputStream in = DBAccess.class.getResourceAsStream("/jdbc.properties");
Properties p = new Properties();
try {
p.load(in);
driver = p.getProperty(“mysql.driver”);
url = p.getProperty(“mysql.url”);
userName = p.getProperty(“mysql.userName”);
password = p.getProperty(“mysql.password”);
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,userName,password);
}
public static void close(ResultSet rs,PreparedStatement pst,Connection con) throws SQLException {
close(rs);
close(pst);
close(con);
}
private static void close(Connection con) throws SQLException {
if(con != null) {
con.close();
}
}
private static void close(PreparedStatement pst) throws SQLException {
if(pst != null) {
pst.close();
}
}
public static void close(ResultSet rs) throws SQLException {
if(rs != null) {
rs.close();
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值