DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能. 使用步骤: A: 获取可以执行SQL语句的对象. public QueryRunner(); public QueryRunner(DataSource ds); //如果需要用到连接池对象了, 会自动从数据库连接池中获取. B: 执行SQL语句, 获取结果集. *** query(String sql,ResultSetHandler rsh, Ob…
1. JDBC 1.1 JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.是Java访问数据库的标准规范 JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序. JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,…
java基础(11) -JDBC jdbc 1.装载驱动 载入跟数据库建立连接的驱动 /* sql server: String className ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; mysql: String className = "com.mysql.jdbc.Driver"; */ Class.forName(className); 2.获取连接 获取数据库服务器的一个开放连接集 /* sql…
java基础解析系列(九)---String不可变性分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer缓存及装箱拆箱 java基础解析系列(三)---HashMap原理 java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别 java基础解析系列…
Java基础-正则表达式(Regular Expression)语法规则简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.正则表达式的概念 正则表达式(Regular Expression,在代码中常简写为regex)是一个字符串,使用单个字符串来描述,用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在开发中,正则表达式通常被用来检索,替换那些符合某个规则的文本. 二.正则表达式常用的匹配规则 再看Java的API帮助文档,在pattern类中有正则表达式的规则定…
Java基础-StringBuffer类与StringBuilder类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringBuffer类 在学习过String类之后,我们发现该类功能甚是强大.查看过API的小伙伴应该知道字符串缓冲区支持可变的字符串,说你是字符串缓冲区呢?接下来我们来研究一下字符串缓冲区. String在存储数据时,过于浪费内存,因此诞生了StringBuffer类,它是一个类似于 String 的字符串缓冲区,但不能修改.我们可以通过下图看出…
我们之前写的代码中的数据库连接每次都是自己创建,用完以后自己close()销毁的,这样是很耗费资源的,所以我们引入DBCP DBCP简介 概述: Data Base Connection Pool, 数据库连接池. 主要是用来优化"连接对象"这步操作的, 将其从"销毁"变为"自动归还". 背景:  实际开发中, 我们会频繁的操作数据库, 这里意味着我们需要大量的连接对象, 这就意味着我们要频繁的创建和销毁连接对象, 而连接对象的创建和销毁是非常消…
目录 1. 常用类 2. JDBC编程步骤 3. 事务处理 4. 数据库连接池 5. JDBC列子代码 6. 使用Apache的JDBC工具类 虽然在平时的开发过程中我们不会直接使JDBC的API来操作数据库,但是JDBC是大多数ORM框架的基础.只有掌握了JDBC的使用才能更好的掌握ORM框架.本篇博客就对JDBC做下介绍,以及使用JDBC操作数据库的一般流程. JDBC(Java数据库连接)是Sun公司提供的一组操作数据库的接口.各个数据库厂商提供具体的数据库驱动实现类.开发者就可以通过统一…
1. JDBC的简介 概述: 就是Java用来操作不同数据库(DBMS)的类库(技术), 本质就是一些类和接口. /* 类: DriverManager 接口: Driver, Connection, Statement, PreparedStatement, ResultSet */ //Java Data Base Connectivity, Java数据库连接(技术). /* 集合: 就是Java用来存储不同类型数据的容器, 本质就是一些类和接口. 接口: Collection, Set,…
本文知识点(目录): 1.什么是jdbc     2.jdbc接口的核心API     3.使用JDBC技术连接MySQL数据库的方法    4.使用Statement执行sql语句(DDL.DML.DQL)    5.使用PreparedStatement执行sql语句    6.使用callablestaement执行sql语句,调用存储过程 7.附录(jdbc连接数据库 实操) 1.什么是jdbc 简单的讲就是:使用java代码(程序)发送sql语句的技术,称为jdbc技术. 2.jdbc…
JDBC的基础应用CURD: 增删改 public void noQuery() { Connection conn = null; Statement stat = null; try { //注册驱动 Class.forName("com.mysql.jdbc.Driver"); //获取连接对象 conn = DriverManager.getConnection("jdbc:mysql:///tempDb", "root", "…
构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当创建Person对象的时候,Person对象一创建就要明确其姓名和年龄,那该怎么做呢? 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息.也就是在创建对象的时候就要做的事情,当使用new关键字创建对象时,怎么给对象的属性初始化值呢?这就…
本文发表于本人博客. 今天我来说说关于JAVA多线程知识,有错误请指出.大家都知道JAVA在服务端上处理也有很大优势,很多公司也有在服务器跑JAVA进程,这说明JAVA在处理这个多线程以及并发下也有一定有优点的(这说法有点坑了).下面来看看 那java中,不具备直接操作像操作系统一样的PV信号,然而它提供了synchronized来实现同步机制,可能这样说不够严谨.JAVA的基类Object中有以下几个方法: public final native void notify(); public f…
一.直接使用JDBC开发的问题 1.当表中的列很多时,需要写很长的SQL语句 还需要写大量 setXXX() 设置参数语句 读取数据时还需要写大量setXXXX()设置属性语句 2.非常容易出错,而且不方便修改 如:某个字段需要去掉,就需要调整后续序号 大量时间都花在"搬砖"上面 而且很容易埋下bug,后期测试和修复时间大大增加!!! 3.效率很差,质量不高 解决方法:将容易出错,大量繁琐的代码封装起来. 给程序员提供更加高级API(Application Programming In…
基本使用代码: /** * Druid连接池及简单工具类的使用 */ public class Test{ public static void main(String[] args) { Connection conn = null; Statement stat = null; ResultSet rs = null; try { //使用简单工具类从Druid数据库连接池内取出Connection对象 conn = DruidSimpleUtils.getConnection(); sta…
使用C3P0的前提是需要引入jar包 具体使用如下: /** * c3p0的应用 * 前提:引入c3p0的jar包 */ public class Test { public static void main(String[] args) { Connection conn = null; Statement stat = null; ResultSet rs = null; try { //C3P0会自动读取src下的c3p0-config.xml文件 获取配置信息(driver,url,us…
Java三大流程控制语句:顺序.选择.循环. if结构.if-else结构.多重if.嵌套if. public class Test { public static void main(String[] args){ int a=1; int b=1; if (a==b) a++; //不加大括号,只能有一句语句 else a--; if(a==b){ a++; b++; }else{ a--; } if(a<10) //多重if结构 a++; else if(a<20) a--; else…
Throwable是Error和Exception的基类 Exception(异常) :是程序本身可以处理的异常. Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或者发生在虚拟机试图执行应用时,一般不需要程序处理. 检查异常(编译器要求必须处置的异常) :  除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常.这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-cat…
1.Java集合框架为不同类型的集合定义了大量接口 其中,集合有两个基本接口:Collection和Map. 2.各接口的主要特征如下 (1)Collection接口:是List接口.Set接口和Queue接口的父接口,通常情况下不能被直接使用. (2)List接口:实现了Collection接口,List接口允许存放重复的对象,按照对象的插入顺序排列 (3)Set接口:实现了Collection接口,Set接口不允许存放重复的对象,按照自身内部的排序规则排列 (4)Queue接口:实现了Col…
1:xml的概述 1.1 xml是什么 标记语言:语言中出现了<a></a>的标签 a:HTML 超文本标记语言 (语法非常严格,不能随意的定义标签) b:XML 可扩展的标记语言(用户可以根据自己的需求,随意的定义标签) 开发的组织:w3c 版本:使用 1.0 1.2 xml有什么用 a:存储数据 b:作为配置文件 1.3 xml怎么用 <?xml version="1.0" encoding="UTF-8"?><pers…
1.前言 集合在Java中的地位想必大家都知道,不用多BB了.无论是在我们现在的学习中还是在今后的工作中,集合这样一个大家族都无处不在,无处不用.在前面讲到的数组也是一个小的容器,但是数组不是面向对象对象的,它存在明显的缺陷,而集合恰好弥补了数组带来的缺陷.集合比数组更加灵活.更加实用.而且不同的集合框架可用于不同的场景. 我们简单来比较一下数组和集合区别: 1.数组能存放基本数据类型和对象,而集合类中只能存放对象. 2.数组容量固定无法动态改变,集合类容量可以动态改变. 3.数组无法判断其中实…
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!! 也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/ /* 1:递归(理解) (1)方法定义中调用方法本身的现象 举…
/** * 批处理 * 批处理跟事务不同 只是把一批sql放到一起执行 2条sql是可以一条执行成功 一条执行失败 是不可逆的 */ public class Test { public static void main(String[] args) { Connection conn = null; PreparedStatement ps = null; try { conn = JDBCSimpleUtils.getConnection(); ps = conn.prepareStatem…
/** * 事务 */ public class Test { public static void main(String[] args) { Connection conn = null; PreparedStatement ps = null; try { //直接用上一篇文章内写好的工具类创建conn conn = JDBCSimpleUtils.getConnection(); String sql1 = "UPDATE users SET psw = ? WHERE uid = ?…
简单工具类: public class JDBCSimpleUtils { /** * 私有构造方法 */ private JDBCSimpleUtils() { } /** * 驱动 */ public static String driver = null; /** * 连接字符串 */ public static String url = null; /** * 用户名 */ public static String user = null; /** * 密码 */ public stat…
循环结构 前面我们已经聊过了if语句,接下来我们就聊聊跟选择语句一样常用的语句:循环语句. 同样的,所有的循环语句都可以写成for语句 while循环 while循环的格式: while(布尔表达式){ //循环内容 } 例子: public static void main(String[] args) { //计算1+2+3+...+100=? int i = 0; int sum = 0; while(i<=100){ sum = sum + i; i++; } System.out.pr…
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之数组.方法 Java基础学习笔记五 Java基础语法之类和ArrayList Java基础学习笔记六 Java基础语法之面向对象 Java基础学习笔记七 Java基础语法之继承和抽象类 Java基础学习笔记八 Java基础语法之接口 Java基础学习笔记九 Java基础语法之this和super J…
自进入大学以来,学习的编程语言从最初的C语言.C++,到后来的Java,. NET.而在学习编程语言的同时也逐渐决定了以后自己要学习的是哪一门语言(Java).到现在为止,学习Java语言也有很长一段时间了,但是之前只是学习了Java最基础的部分,对于什么IO流.多线程之类的只是简单的了解,并没有过多的去学习,所以随着后面学习的深入,发现没有这部分知识对我们来说更加的重要,所以现在我又重新来复习了一遍Java基础,努力打好自己的Java基础.并且用博客记录下来,也方便自己以后温故知新,而我已经深…
Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四) Java基础知识陷阱(五) Java基础知识陷阱(六) Java基础知识陷阱(七) Java基础知识陷阱(八) Java基础知识陷阱(九) Java基础知识陷阱(十)…
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简化开发工具包.需要项目导入commons-dbutils-1.7.jar才能够正常使用DBUtils工具.安装方式可参考:“http://www.cnblogs.com/yinzhengji…