标签:ram cer 如何 个数 key getc 三层 row 分层
JDBC
问题:实际开发中,不可能用工具或者命令行操作数据库,数据库表中的数据最终要使用Java程序来操作,那么Java中如何操作数据库中的数据呢?
答 : 在Java语言中,有一个专门连接数据库的规范(JDBC),专门负责连接数据库进行数据操作的规范
JDBC只是SUN编写的一堆接口(规范的体现),SUN公司自己并没有实现
问题 : 为什么SUN只定义一个JDBC规范,而不实现呢?
答 : 因为市面上的数据库很多,每个数据库内部接口不会向外暴露,而且即便是暴露让SUN去实现,市面上很多数据库全部要SUN来实现不现实
实际中哪个数据库需要支持JAVA语言,就需要自己实现Java的JDBC规范,因为实现了JDBC很多接口,那么就会有很多实现类,而很多实现类在java中会使用一个专门的包封装起来,叫做jar包(在JDBC中叫做驱动包),各大数据库产商实现JDBC规范以后都会把他们jar包放在官网上以供开发者下载使用
jdbc:
是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基
JDBC规范对应的api包
在其他操作之间先要把数据库表要创建出来
public static void main(String[] args) throws Exception {
String sql = "create table t_student (id int primary key auto_increment,name varchar(50),age int)";
//贾琏欲执事
//1,加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2,获取数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbcdemo", "root", "root");
//3,创建语句对象(用于执行SQL语句的对象)
Statement st = conn.createStatement();
//4, 执行SQL语句
//int rows = st.executeUpdate(String sql);执行DDL和DML语句,放回的是受影响的行数
//ResultSet res = st.executeQuery(String sql);执行DQL查询语句,返回的结果集对象
st.executeUpdate(sql);
//5,释放资源(先开后关)
st.close();
conn.close();
}
问题 : 我们有了Statment对象可以执行SQL,为什么还要使用PreparedStatment?
优势
Statement: 表示静态SQL语句对象. PreparedStatement:Statement的子接口,表示预编译SQL语句对象. 通过占位符(?)来拼SQL. |
创建语句对象 Statment
在执行SQL语句的时候回带上SQL语句
在执行SQL语句的方法中不需要设置SQL语句
void setXxx(int parameterIndex,Xxx value):用于设置占位符参数, parameterIndex:第几个问号. 注意:从1开始. value:设置的真实值. Xxx:表示数据类型.String/int/long/Double/Date |
实际开发中,JavaWeb开发代码一般分为三层,分层结构是JavaWeb开发中的一种设计思想,这样会让我们开发层次分明,每一层只要完成对应的功能即可,使得项目便于开发和维护
1 . Web层/表现层 : 主要接受前台浏览器用户的参数,给浏览器响应数据等等
DAO : Data Access Object 数据访问对象
实际开发中 : 用户请求到-Web层--->Service层-->DAO层
开发中如果使用的分层,编写的包和类名接口名等等都是有固定规则,不能随便瞎写
公司域名倒写+项目名称/模块名称+dao 如 : cn.sxt.crm.dao |
公司域名倒写+项目名称/模块名称+dao+impl 如 : cn.sxt.crm.dao.impl |
对应表的名称 + Dao/DAO
如 : StudentDao/DAO , TeacherDao/DAO |
对应表的名称 + Dao/DAOImpl
如 : StudentDaoImpl/DAOImpl , TeacherDaoImpl/DAOImpl |
POJO(Plain Ordinary Java Object)简单的Java对象
domian : 域对象
公司域名倒写+项目名称/模块名称+domain/pojo 如 : cn.sxt.crm.domain |
公司域名倒写+项目名称/模块名称+test 如 : cn.sxt.crm.test |
公司域名倒写+项目名称/模块名称+util/utils 如 : cn.sxt.crm.util/utils |
标签:ram cer 如何 个数 key getc 三层 row 分层
原文地址:https://www.cnblogs.com/gflb/p/10891254.html