Java语言入门
JDBC
- JDBC(Java DataBase Connectivity)
- java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是面向关系型数据库的,也是Sun Microsystems的商标。
- 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
- 使用JDBC操作数据库之前,首先要有一个数据库。
MySQL安装配置和基础学习
- https://www.mysql.com/,下载安装MySQL。
- 打开MySQL:mysql –u用户名 –p密码(注意:“-p”和“123” 之间不能有空格)
C:>mysql -uroot -proot - 查看数据库:mysql>show databases;
- 创建数据库:mysql>create database huang;
- 切换数据库:mysql>use huang;
- 查看表:mysql>show tables;
- 创建表:
mysql> create table guo(
-> id int(8) not null primary key auto_increment,
-> name varchar(20),
-> age int(10)
-> ); - 插入数据
mysql> insert into guo(name,age) values(“quan”,30); - 查询数据
mysql> select * from guo; - 删除数据
mysql> delete from guo where id=1; - 退出 MySQL:mysql>quit(或者exit)
- 用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名; - 导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql; - mysql -h 10.81.40.69 -uroot -proot (IPv4地址)
使用TCP/IP连接, mysql server 认为该连接来自于127.0.0.1或者是”localhost.localdomain”。 - mysql -h localhost -uroot –proot
是不使用TCP/IP连接的,而使用Unix socket; 此时,mysql server则认为该client是来自”localhost”。 - mysql -h localhost -P 3306 -uroot –proot
- 修改密码:
mysqladmin -u用户名 -p旧密码 password 新密码 - 增加新用户:
grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例:GRANT ALL ON . TO ‘cat’@’%’ with grant option;
GRANT SELECT, INSERT ON huang.guo TO ‘cat’@’%’;
导入jar包
- 使用JDBC需要在工程中导入对应的jar包。数据库与JDBC包的对应关系可以参考各种数据库对应的jar包、驱动类名和URL格式。
- 在Eclipse下的导入方法:在工程的图标上右击,选择”Properties”,在”Java Bulid Path”中选择”Add External JARs…”,选择下载并解压后获得的jar包。
- 以MySQL为例:
mysql-connector-java-5.1.42-bin.jar
JDBC基本使用
步骤:
- 加载对应驱动;
- 连接数据库(创建Connection对象);
- 传入SQL命令,获得PreparedStatement(或Statement)对象;
- 对PreparedStatement(或Statement)对象执行executeUpdate()或executeQurey()获得结果;
- 关闭数据库(关闭Connection对象)。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Testjdbc {
public static void main(String[] args) throws Exception {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//new com.mysql.jdbc.Driver();也可以直接new,但需要自己写异常处理
//2.连接数据库
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/huang", "root", "root");
System.out.println(conn);
//3.操作数据库
String sql = "select * from hu";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int id=rs.getInt(1);
String name=rs.getString(2);
int age=rs.getInt(3);
System.out.println(id+":"+name+":"+age);
}
//4.关闭数据库
conn.close();
}
}
导入包
- import java.sql.Connection;//接口
- import java.sql.DriverManager;//类
- import java.sql.ResultSet;//接口
- import java.sql.Statement;//接口
- import java.sql.SQLException;//类
- import java.sql.PreparedStatement;//接口
常用方法
常用方法-1
- public interface Connection extends Wrapper
与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 - void close()
立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。 - Statement createStatement()
创建一个 Statement 对象来将 SQL 语句发送到数据库。
常用方法-2
- PreparedStatement prepareStatement(String sql)
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。 - public class DriverManager extends Object
管理一组 JDBC 驱动程序的基本服务。 - static Connection getConnection(String url)
试图建立到给定数据库 URL 的连接。
常用方法-3
- public interface ResultSet extends Wrapper
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 - int getInt(int columnIndex)
以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。 - String getString(int columnIndex)
以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。
常用方法-4
- public interface Statement extends Wrapper
用于执行静态 SQL 语句并返回它所生成结果的对象。 - boolean execute(String sql)
执行给定的 SQL 语句,该语句可能返回多个结果。 - ResultSet executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
常用方法-5
- public class SQLException extends Exception implements Iterable
提供关于数据库访问错误或其他错误信息的异常。 - public interface PreparedStatement extends Statement
表示预编译的 SQL 语句的对象。SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
常用方法-6
- void setInt(int parameterIndex, int x)
将指定参数设置为给定 Java int 值。 - void setString(int parameterIndex, String x)
将指定参数设置为给定 Java String 值。 - int executeUpdate()
在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句。
封装JDBC工具类
DAO模式简述
- DAO即Data Access Object,数据访问接口。夹在业务逻辑与数据库资源中间。
- DAO模式实际上是两个模式的组合,即Data Accessor (数据访问者)模式和 Active Domain Object(领域对象)模式。Data Accessor 模式实现了数据访问和业务逻辑的分离;Active Domain Object 模式实现了业务数据的对象化封装。
- DAO设计模式提供了一种通用的模式,来简化大量的代码,增强程序的可移植性。
DAO设计模式
- 保证与数据库正确的连接
- 必须要有javabean(或领域模型domain)
- DAO接口(方法)
- 实现DAO接口的具体类(具体操作)
- 测试