JDBC连接数据库学习心得
JDBC连接数据库学习心得
1. 环境的搭建
首先在intelliJADE下新建工程,并且在工程根目录下创建lib包,lib包用于存放JDBC的jar包,以及以后其他工具jar包.将jar包存入并且导入环境配置后进行下一步
2.数据库连接mysql有两种方式
(1).通过在页面写数据库连接语句连接数据库.
优点:当你刚刚搭设好环境用于测试的情况下,这几句话非常方便.连接数据库的基本步骤与语句是JDBC的基础,后面的Util类里面的方法也是基于这个基础封装的.
缺点:如果你要进行项目开发,每一个需要对数据库进行操作的方法与类都需要写一遍,而且如果数据库的密码路径发生更改,需要每一个写了这些语句的地方都需要更改.费时费力容易出错.
(2).通过创建一个JdbcUtil类,将数据库连接与关闭的方法包装进去,并且将数据库的地址与账户信息,写到一个文本文件中,并用JdbcUtil类里的方法去读取与调用.
优点:1.在项目开发中,创建Util这个连接类之后,每次需要对数据库进行操作的时候,可以直接调用这个Util连接类,通过里面封装好的方法可以轻松对数据库进行访问,避免了大量的代码冗余,
2.如果数据库的路径与账户信息发生改变,只需要对文本文件进行改动即可,极大的方便了操作,也减少了出错的机会
3.符合java的封装思想
2.1简述JDBC连接数据库的两种方式
(1).在页面写数据库连接语句连接数据库
[1].注册驱动,由于驱动是分厂家的,有重复性的操作,推荐使用类对象
Class.forname("com.mysql.jdbc.Driver");
//上面这句话会将这个类先加载进内存,之后此类的静态代码块就会执行,在静态代码块中就已经有了注册驱动的代码
[2].建立连接并且获取连接对象
Connectionconn = DriverManager.getConnection(path);
path的三种写法
第一种:
path="jdbc:mysql://localhost:3306/jdbc?user=root&password=newpass"
localhost:3306为数据库的地址与端口号,如果是本地数据库那么默认用localhost,本地默认端口号3306.如果是网络上的数据库,比如Linux虚拟机里的则需要填写他们的ip地址例如:172.16.110.129
端口号/jdbc.此jdbc为数据库名称
?连接的是参数 &在参数与参数之间起到连接作用
user与password都是参数名
root与newpass都是参数值
如果数据库的编码不是utf8那么在通过Java代码去访问数据库进行增删改查的时候,需要传输汉字,那么在?后面应该加上编码规则?characterEncoding=UTF-8,这样数据库可以识别Java传过来的汉字
第二种:
path=""jdbc:mysql://localhost:3306/jdbc","root","newpass""
数据库的地址与登录的用户名和信息分别用双引号括起来进行区分,这样可以不用输入?和&也不用输入参数名,只需要输入账号和密码并且用双引号括起来即可.
第三种:
创建一个Properties对象用来存储参数,用户名和密码
Propertiesproperties = new Properties();
//以key-value的方式存储
properties.setProperty("user", "root");
properties.setProperty("password","newpass");
这样在DriverManger.getConnection()里面就需要写
("jdbc:mysql://数据库地址(localhost/网络ip):端口号(本机默认3306)/所选择的数据库名称")
[3].根据连接对象,获得Statement对象
Statementstmt = conn.creatStatement();
[4].由statement对象执行sql语句
例如:
statement.execute("CREATE TABLE stu("id INT PRIMARYKEY , name VARCHAR(50), age INT )");
ResultSet resultSet =stmt.executeQuery("SELECT * FROM stu;");
对于查询语句,需要使用executeQuery进行操作,以及需要调用ResultSet这个类去接收查询结果
//输出当前resultset指针所在位置
System.out.println(resultSet.getRow());
//next后的位置
resultSet.next();
//previous后的位置
resultSet.previous();
可以使用while循环遍历搜索结果
while (resultSet.next()) {
System.out.println("id:" + resultSet.getInt("id") +
" name:" + resultSet.getString("name") +
" age:" + resultSet.getInt("age"));
}
[5].对数据库进行操作之后要进行关闭流操作
conn.close;
stmt.close;
rs.close;
以上五个步骤为直接在类里创建数据库连接,并且进行了插入和查询两个步骤的完整方法
(2).通过创建JdbcUtil类对数据库进行连接
[1].创建一个类,类名是JdbcUtil,并且在src文件夹下创建Properties名字为jdbcfg
[2]打开JdbcUtil开始编写连接,创建静态代码块
//驱动类的路径
private static StringdriverClass=null;
//连接数据库使用的url
private static Stringurl = null;
//用户名和密码
private static Stringuser = null;
private static String password = null;
private static Connection conn = null;
//提前声明是因为之后在catch还需要用到
static {
try {
ClassLoader cl = Jdbcutil.class.getClassLoader();
InputStream stream =cl.getResourceAsStream("jdbcfg.properties");
//得到流中的数据
//创建一个Properties对象
Propertiesprop = new Properties();
//通过Properties对象的Load方法,加载流中的数据
prop.load(stream);
//根据key,获得value
driverClass = prop.getProperty("driverClass");
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//写一个静态方法,获取连接对象
public static Connection getConnection() throwsSQLException {
return DriverManager.getConnection(url,user,password);
}
//写一个静态方法,获得stmt对象
public static Statement getStatment() throwsSQLException {
conn = getConnection();
return conn.createStatement();
}
public static void release(){
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void release(Statementstmt){
release(stmt,null);
}
//写一个静态方法,用来释放资源
//如果想要释放Connection,需要调用Connection对象的close方法
//所以需要将Connection对象传入release方法,
//然后在release方法中调用该对象的close方法,
//释放资源
//statment对象与ResultSet对象同理
public staticvoid release( Statement stmt, ResultSet rs){
release();
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2.2通过创建JdbcUtil类之后,以后的操作可以直接调用而不需要重新创建连接
JDBC连接数据库学习心得相关推荐
- JDBC基础(学习心得)
一.简介 JDBC,全称为Java DataDase Connectivity(Java数据库连接),它可以连接Sql Server , MySql , Oracle , Java提供了很多接口 , ...
- JDBC的学习(第二节:JDBC连接数据库 )
本次的学习主要分为九个部分 第一节:JDBC的概述 第二节:JDBC连接数据库 第三节:使用Statement接口实现增.删.改操作 第四节:使用PreparedStatement接口实现增.删.改的 ...
- jsp学习 jdbc连接数据库实现登录注册
在数据库层面后端方法可以实现的数据验证,在jsp页面也可以简单的实现这个操作,上一次咱们测试过在jsp页面实现jdbc连接数据库,具体请看我的文章:http://t.csdn.cn/ShDee 本次我 ...
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- Java入门1.2.3—一个老鸟的Java学习心得
Java入门1.2.3-一个老鸟的Java学习心得 基本信息 作者: 臧萌 出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 ...
- sping jdbc 链接mysql_Spring Boot JDBC 连接数据库示例
文本将对在spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. JDBC 连接数据库 1.属性配置文件( ...
- java hibernate4 学习心得
一直在学习asp.net mvc但很多都无法理解,同时网上说的架构asp.netmvc+spring.net+nhibernate架构比较牛,但学习了很久总是觉得不明白,而且文档也很少,就转入了mvc ...
- java入门123 pdf下载_Java入门123:一个老鸟的Java学习心得 pdf_IT教程网
资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...
- db2 jdbc 连接池_db2 jdbc连接数据库
DB2的JDBC连接驱动与URL总结 依照 JDBC 规范,有四种类型的 JDBC 驱动程序体系结构: Type 1:这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开 ...
最新文章
- java生成缩略图类源码
- linux系统中离线安装python3.7过程记录
- Python 中异常嵌套
- Java内存模型深度解析:锁--转
- web 日志分析工具 awstats 简单安装
- 使用临时表的另外一种方式
- [图形]图形API的两种模式
- (转)编写Spring的第一个案例并测试Spring的开发环境
- 如何用阿里云服务器建立一个wordpress网站?
- php表单验证插件下载,强力推荐10款Javascript表单验证插件
- CherryTree:一款免费开源的富文本笔记软件
- Martin Fowler微服务论文--译文
- 130行Python代码模仿“蚂蚁呀嘿”特效,太魔性了!
- Java LocalDateTime给当前时间加半小时
- kubernetes dev client-go 进入pod执行命令
- idea中js函数中使用EL表达式报错expression expected以及参数underfined的问题.md
- 无人机云台电机用的是哪种?
- 最简单的平面制图用什么软件_视频解说不想自己录,用什么简单好用的配音软件制作?...
- 最便捷的神经网络可视化工具之一--Flashtorch
- BIM Revit2018软件安装激活教程