当前位置: 首页 > news >正文

随县住房和城乡建设局网站爱站网排名

随县住房和城乡建设局网站,爱站网排名,东莞淘宝网站建设,博客网站模板下载今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、JDBC 二、登录 三、ORM 零、 复习昨日 sql语言#xff1a;DDL DML DQL DCL create table 表名(id int primary key auto_increment,sname varchar(2…今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、JDBC 二、登录 三、ORM 零、 复习昨日 sql语言DDL DML DQL DCL create table 表名(id int primary key auto_increment,sname varchar(20) unique,age int not null,score double(10,2) default 100.0,birthday date );insert into stu values(1,zs,18,98.2,2020-01-01) update stu set sname ls where id 1; delete from stu where id 1;select 字段,聚合函数,函数,流程函数 from 表1,表2 / left join 表2 where 关联条件/过滤条件 group by 分组字段 having 分组后过滤条件 order by 排序字段 limit x[,y]字符串函数 concat 数学函数 format,truncate,rand,round 日期函数 sysdate() now(),current_date()date_add(1 interval 1 单位) adddate()date_sub , datediffyear() month() day()日期转字符串 data_format(日期,‘%Y-%m-%d’)字符串转日期 str_to_date(‘日期字符串’,‘%Y-%m-%d’) 流程函数 if() ifnull() case when then esle end 索引 是一种数据结构,目的是为了提高查询效率主键索引,唯一索引,普通索引,复合索引(联合索引),全文索引索引什么时候加? 注意使用的时机 一、引言 1.1 如何操作数据库 使用客户端工具访问数据库需要手工建立连接输入用户名和密码登录编写 SQL 语句点击执行查看操作结果结果集或受影响行数。 客户端操作数据库步骤 1.2 实际开发中会采用客户端操作数据库吗 在实际开发中当用户的数据发生改变时不可能通过客户端操作执行 SQL 语句因为操作量过大无法保证效率和正确性。 二、JDBC 2.1 什么是 JDBC JDBCJava Database Connectivity Java 连接数据库的规范标准可以使用 Java 语言连接数据库完成 CRUD 操作。 2.2 JDBC 核心思想 Java 中定义了访问数据库的接口可以为多种关系型数据库提供统一的访问方式。由数据库厂商提供驱动实现类Driver 数据库驱动。 核心思想 2.2.1 MySQL 数据库驱动 mysql-connector-java-5.1.X 适用于 5.X 版本mysql-connector-java-8.0.X 适用于 8.X版本 2.3 环境搭建 mysql厂商提供的jdbc规范的实现,要想完成JDBC操作,就需要将驱动包加入到当前项目中. 2.3.1 方式1:复制粘贴 在项目下新建 lib 文件夹用于存放 jar 文件。将 mysql 驱动mysql-connector-java-5.1.X复制到项目的 lib 文件夹中。选中 lib 文件夹右键 Add as Library点击 OK。 在项目名下创建文件夹lib 命名为lib 将mysql驱动包复制粘贴到此处 添加驱动包为当前项目的类库 2.3.2 方式2:idea导入类库 打开项目结构(Project Structure)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ppjLhrMS-1683686915035)(C:/Users/qiush/AppData/Roaming/Typora/typora-user-images/image-20230320105013907.png)] 选择libraries,添加jar包 本地磁盘选择jar包 应用生效 下方,External查看导入类库 三、JDBC编程 JDBC编程有标准步骤(八股文) 注册驱动 将sql语句的运行环境加载到JVM 连接数据库获得执行SQL的对象执行SQL语句,获得结果关流 3.1 注册驱动 使用 Class.forName(“com.mysql.jdbc.Driver”);手动加载字节码文件到 JVM 中。 或者MySQL8版本 Class.forName(“com.mysql.cj.jdbc.Driver”); Class.forName(com.mysql.jdbc.Driver);//5.7版本 加载驱动 Class.forName(com.mysql.cj.jdbc.Driver);//5.7版本 加载驱动3.2 连接数据库 通过 DriverManager.getConnection(url,user,password) 获取数据库连接对象 URL:jdbc:mysql://localhost:3306/database ?useUnicodetruecharacterEncodingutf8 // 解决数据编码格式乱码useSSLfalse // 解决执行时控制台红色警告serverTimezoneUTC // mysql8版本需要加时区 username:rootpassword:123456 Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/database?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneUTC , root,1234);URL(Uniform Resource Locator) 统一资源定位符由协议、IP、端口、SID程序实例名称组成 3.3 获取发送 SQL 的对象 通过 Connection 对象获得 Statement 对象用于对数据库进行通用访问。 Statement statement conn.createStatement();3.4 执行SQL 语句 执行 SQL 语句并接收执行结果。 String sql INSERT INTO t_jobs(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY) VALUES(JAVA_Le,JAVA_Lecturer,4000,10000);;int result statement.executeUpdate(sql);//执行SQL语句并接收结果注意在编写 DML 语句时一定要注意字符串参数的符号是单引号 ‘值’DML 语句增删改时返回受影响行数int 类型。DQL 语句查询时返回结果数据(ResultSet 结果集)。 3.5 处理结果 接受处理操作结果。 if(result 1){System.out.println(Success); }受影响行数逻辑判断、方法返回。查询结果集迭代、依次获取。 3.6 释放资源 遵循先开后关原则释放所使用到的资源对象。 statement.close(); conn.close();3.7 案例 准备数据库表,进行CRUD. create table tb_user(id int(11) primary key auto_increment comment 用户编号,username varchar(10) comment 用户名,password varchar(10) comment 密码,phone varchar(11) comment 手机号,createTime date comment 注册时间,money double(10,2) comment 账户余额,sex int(1) comment 性别 1男2女 );需求: 使用JDBC完成对tb_user表插入数据 package com.qf.jdbc;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;/*** --- 天道酬勤 ---** author QiuShiju* desc 演示JDBC*/ public class Demo1_insert {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 1 加载驱动// ps: 利用反射技术,将驱动类加载到JVMClass.forName(com.mysql.jdbc.Driver);// 2 通过驱动管理对象获得连接对象/*** 参数1 url: 数据库连接的地址* 协议://ip:端口/库名* 参数2 username: 数据库用户名* 参数3 password: 数据库密码*/String url jdbc:mysql://localhost:3306/java2217?useSSLfalseserverTimezoneUTC;String username root;String password 123456;Connection conn DriverManager.getConnection(url,username,password);// 3 通过连接对象,创建执行sql语句的对象Statement statement conn.createStatement();// 4 通过执行语句对象,执行sql,获得结果String sql insert into tb_user (id,username,password,phone,createTime,money,sex) values (2,root,123456,1122200,2022-11-21,2000.0,2);// 执行查询,是executeQuery()// 执行增删改,是executeUpdate(),返回受影响的行数int num statement.executeUpdate(sql);if (num 0) {System.out.println(插入成功!! );}// 5 关流statement.close();conn.close();} }四、完成增删改 4.1 插入 参考入门案例 4.2 更新 任何的JDBC都是那5个步骤. package com.qf.jdbc;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;/*** --- 天道酬勤 ---** author QiuShiju* desc 更新*/ public class Demo2_update {public static void main(String[] args) throws Exception {// 1 加载驱动Class.forName(com.mysql.jdbc.Driver);// 2 通过驱动管理对象获得连接对象String url jdbc:mysql://localhost:3306/java2217?useSSLfalse;String username root;String password 123456;Connection conn DriverManager.getConnection(url, username, password);// 3 通过连接对象创建执行语句对象Statement statement conn.createStatement( );// 4 通过执行语句对象执行sql,获得结果String sql update tb_user set username 小孟, phone 666666 where id 3;int num statement.executeUpdate(sql);if (num 0) {System.out.println(更新成功! );}// 5 将对象的流关闭statement.close();conn.close();} }4.3 删除 public class Demo3_delete {public static void main(String[] args) throws Exception {Class.forName(com.mysql.jdbc.Driver);Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/java2217?useSSLfalse, root, 123456);Statement statement conn.createStatement( );int num statement.executeUpdate(delete from tb_user where id 3);if (num 0) {System.out.println(删除成功!);}statement.close();conn.close();} }五、查询结果集ResultSet【重要】 查询返回的是一种虚拟表,Java的JDBC中是使用结果集(ResultSet)来封装这个虚拟表,结果集就是一个集合,内部就存储了列名和每行数据,那么学习查询的重点是 从结果集取值 package com.qf.jdbc;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;/*** --- 天道酬勤 ---** author QiuShiju* desc 查询*/ public class Demo4_select {public static void main(String[] args) throws Exception {Class.forName(com.mysql.jdbc.Driver);Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/java2217?useSSLfalse, root, 123456);Statement statement conn.createStatement( );String sql select id,username,password from tb_user;// 执行查询的方法executeQuery,方法返回值是ResultSetResultSet rs statement.executeQuery(sql);/*** ResultSet 内部包含了整个查询返回的虚拟表数据* 内部提供了方法可以操作结果集* boolean next(); 判断结果集有没有下一行数据,返回false,即没有下一行数据返回* true就是有下一行数据,此时就可以进入取值* getObject() 获得数据,返回值是Object* getInt/getString/getDate() 获得数据,返回对应数据类型* --------------------------------------* getXxx(int columnIndex) 通过列下标获得对应Xxx数据类型的数据* 下标从1开始,顺序是按照查询返回虚拟表顺序* getXxx(String columnLabel) 通过列名获得对应Xxx数据类型的数据* 根据虚拟表列名,如果有别名那就是别名*/while (rs.next()) {// 通过列下标获得数据// int id rs.getInt(2);// String username rs.getString(1);// 通过列名获得数据 【推荐】int id rs.getInt(id);String username rs.getString(username);System.out.println(id - username);}statement.close();conn.close();}}六、登录案例【重要】 需求: 通过控制台用户输入用户名和密码。用户输入的用户名和密码作为条件编写查询 SQL 语句。 select * from user where username xxx and password xxx 如果该用户存在提示登录成功反之提示失败。 package com.qf.jdbc;import com.mysql.jdbc.Driver;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner;/*** --- 天道酬勤 ---** author QiuShiju* desc*/ public class Demo5_Login {public static void main(String[] args) {// 1 输入用户名和密码Scanner scanner new Scanner(System.in);System.out.println(请输入用户名: );String username scanner.nextLine( );System.out.println(请输入密码: );String password scanner.nextLine( );// 2 根据用户名和密码查人boolean isOk findUserByLogin(username,password);// 3 结果if (isOk) {System.out.println(登录成功! );} else {System.out.println(用户名或密码错误! );}}// 使用捕获代码完成private static boolean findUserByLogin(String username, String password) {Connection conn null;Statement statement null;boolean isOk false;try {Class.forName(com.mysql.jdbc.Driver);conn DriverManager.getConnection(jdbc:mysql://localhost:3306/database?useSSLfalse, root, 123456);statement conn.createStatement( );// 根据用户名和密码查询,注意字符串拼接.特别注意单引号ResultSet rs statement.executeQuery(select * from tb_user where username username and password password);// 只要有值,就说明数据库有这个信息,登录成功if (rs.next()) {// System.out.println(登录成功! );int id rs.getInt(id);String uname rs.getString(username);// ...System.out.println(id-username);isOk true;} else {// System.out.println(用户名或密码错误!! );}}catch (Exception e) {System.out.println(SQL操作出错! );e.printStackTrace();// 打印异常} finally {try{statement.close();conn.close();}catch (Exception e) {System.out.println(关流异常 );e.printStackTrace();// 打印异常}}return isOk;} }七、ORM【重要】 7.1 什么是ORM 目前使用JDBC完成了CRUD,但是现在是进行CRUD,增删改方法要设计很多参数,查询的方法需要设计集合才能返回. 在实际开发中,我们需要将零散的数据封装到对象处理. ORM (Object Relational Mapping) 对象关系映射 是指数据库表与Java的实体类有关系,可以进行映射 数据库表 -- Java的类 tb_user — User.java 字段 -- 类的属性 id int -- private int id;username varchar -- private String username;… 一行数据 -- 类的对象 7.2 实体类 实体类: 数据表中零散数据的载体,用来封装数据. 表名 设计 类名将列名设计成属性名 id -- idcreate_time -- createTime (下划线转驼峰) 将列的数据类型设计成属性的数据类型给类提供对应set get 一般项目中一个表就会对应一个实体类,所有的实体类都会放在model/entity/pojo/javabeen包结构中 将来写项目,数据库设计完,搭建完项目,第一件事件就是根据表结构,创建实体类 package com.qf.model; // 包 public class User { // 实体类,是表名// 属性是字段名private int id;private String username;private String password;private String phone;private Date createTime;private double money;private int sex;// setter getter... }[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PoGLG5sN-1683686914087)(…/…/…/…/Java2217/阶段2/day43/笔记/day43_jdbc.assets/image-20221122160619448.png)] 7.3 ORM改造登录案例 package com.qf.jdbc;import com.qf.model.User;import java.sql.*; import java.util.Scanner;/*** --- 天道酬勤 ---** author QiuShiju* desc 使用orm改造login登录案例*/ public class Demo6_login_orm {public static void main(String[] args) {input();}// 1 键盘输入public static void input() {Scanner scanner new Scanner(System.in);System.out.println(请输入用户名:);String username scanner.nextLine( );System.out.println(请输入密码:);String password scanner.nextLine( );// 调用方法执行查询User user findUserByUsernameAndPassword(username, password);if (user ! null) {System.out.println(用户登录成功 );System.out.println(用户信息: user );} else {System.out.println(用户名或密码错误! );}}// 2 执行登录public static User findUserByUsernameAndPassword(String username, String password) {Connection conn null;Statement s null;ResultSet rs null;// 声明user,赋值为null,下方如果登录成功,创建user对象// 即将来,可以通过user是否为空判断是否登录成功User user null;try {// 1 驱动Class.forName(com.mysql.jdbc.Driver);// 2 连接conn DriverManager.getConnection(jdbc:mysql://localhost:3306/java2301?useSSLfalse, root, 123456);// 3 语句s conn.createStatement( );// 4 查询String sql select * from tb_user where username username and password password;// 执行rs s.executeQuery(sql);// 判断成功,说明查询到用户if (rs.next()) {// 取出数据int id rs.getInt(id);String username1 rs.getString(username);String password1 rs.getString(password);String phone rs.getString(phone);Date createTime rs.getDate(createTime);double money rs.getDouble(money);int sex rs.getInt(sex);// 封装数据user new User();user.setId(id);user.setUsername(username1);user.setPassword(password1);user.setPhone(phone);user.setCreateTime(createTime);user.setMoney(money);user.setSex(sex);}} catch (Exception e) {System.out.println(出错了! e.getMessage( ));} finally {// 5 关流try {rs.close();s.close( );conn.close( );} catch (SQLException e) {System.out.println(关流时有异常 e.getMessage( ));}}return user;} }7.4 ORM完成注册 package com.qf.jdbc;import com.qf.model.User;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.Date;/*** --- 天道酬勤 ---** author QiuShiju* desc*/ public class Demo7_insert_orm {public static void main(String[] args) {User user new User( );user.setUsername(王五);user.setPassword(123456);user.setPhone(110);user.setCreateTime(new Date( ));user.setMoney(2800.0);user.setSex(2);insert(user);}// 注册public static void insert(User user) {Connection conn null;Statement s null;try {Class.forName(com.mysql.jdbc.Driver);conn DriverManager.getConnection(jdbc:mysql://localhost:3306/java2301?useSSLfalse, root, 123456);s conn.createStatement( );SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);String date sdf.format(user.getCreateTime( ));String sql insert into tb_user (username,password,phone,createTime,money,sex) values (user.getUsername(),user.getPassword(),user.getPhone(),date,user.getMoney(),user.getSex());System.out.println(拼接后的sql --- sql );int num s.executeUpdate(sql);System.out.println(num 0 ? 插入成功:插入失败 );} catch (Exception e) {e.printStackTrace( );}} }
http://www.hkea.cn/news/14515181/

相关文章:

  • 南京建设工程质量监督站网站济南企业做网站
  • 网站开发的关键技术有哪些iis网站属性没有asp.net
  • 怎么做网站版面查备案网站备案
  • 湖北省建设银行网站6php开发工具
  • 优秀的网站建设价格苏州网站建设-中国互联
  • 平面设计的网站有哪些网站怎样用代码制作网站
  • 做网站刷QQ会员网站沈阳做网络推广的公司
  • 响应式网站空间服务器要求怎么注册地理位置
  • 南通网站定制企业硬件开发一站式平台
  • 东莞网络网站建设靓号网建站
  • 如何自建网站入口启动互联全网营销推广
  • 企业网站建设一般要素包括哪些php工程师
  • 国家电网网站制作第一次做ppt怎么弄
  • 信阳市网站建设公司网站建设的基本需求有哪些
  • 重庆网站建设招标架构图在什么网站可以做
  • 酉阳网站建设宁波高端网站设计公司
  • 房产网站排行榜收录查询代码
  • 合肥网站 技术支持 上诚科技wordpress 新浪微博插件
  • 工程信息网站排名电脑版微信登录入口
  • 化妆品网站建设目的餐饮加盟网站怎么做
  • 看房子建设进度的网站装修公司网站建设方案
  • 网站怎么做透明导航栏苏州建设局统计网站
  • 做教育招生网站三亚网吧多少钱一个小时
  • 模板网站试用国外自建站好做吗
  • 遂溪网站建设公司wordpress登陆logo
  • 厦门外贸公司做网站荔枝app下载不收费用
  • 汽车网站建设多少钱北京网页公司制作
  • 创建自由摄影师的网站内容网站建设班
  • html5做宠物饲养网站营业推广策划
  • 哈尔滨全国网站建设南沙网站建设公司