我们创建一个sql表,里面的数据往往都会有自增长值. 那么,我们用jdbc插入数据的时候,要想同时获得这个增长值. 代码: /** * * 这是插入一条数据的同时,获取该数据的则增长列的值(该例子的自增长列是id) * * @author LZL * */ public class Auto_Increment { private static Connection conn = null; private static PreparedStatement stsm = null; privat…
Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数据库中建立结果集对应的临时表,先插入然后再统一查询(中间就节省了遍历再重组数据的时间了). 1.首先我们从mysql数据库中查询出对应数据 sql: <select id="queryUsers" parameterClass="java.util.Map" re…
上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class.forName("com.mysql.jdbc.Driver"); // 获取连接的数据库对象 Connection conn = DriverManager.getConnection(url, user, password); // 创建Statement对象 Statement st…
|- Statement接口: 用于执行静态的sql语句 |- int executeUpdate(String sql)  : 执行静态的更新sql语句(DDL,DML) |- ResultSet executeQuery(String sql)  :执行的静态的查询sql语句(DQL) |-PreparedStatement接口(Statement接口的子类):用于执行预编译sql语句 |- int executeUpdate() : 执行预编译的更新sql语句(DDL,DML) |-Res…
由于项目需要,需要将一个6M的txt中的数据插入到oracle数据表中.txt中的数据是每行一个词.经过统计,词总数是505040.为了看起来方便,我将我的所有方法写在类入口中,数据库的信息我会用test代替,代码如下. public static void main(String[] args) throws IOException, Exception { // TODO Auto-generated method stub Connection conn = null; Class.for…
1. Jdbc中大文本类型的处理 Oracle中大文本数据类型, Clob    长文本类型   (MySQL中不支持,使用的是text) Blob    二进制类型 MySQL数据库, Text    长文本类型 Blob    二进制类型 需求: jdbc中操作长文本数据. 设计: 测试表 编码: 保存大文本数据类型 读取大文本数据类型 保存二进制数据 读取二进制数据 MYSQL: -- 测试大数据类型 CREATE TABLE test( id INT PRIMARY KEY AUTO_I…
JDBC接口核心的API java.sql.*   和  javax.sql.*(java2.0以后更新的扩展) |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, properties):  连接数据库的方法.   url: 连接数据库的URL URL语法: jdbc协议:数据库子协议://主机:端口/数据库 user: 数据库的用户名 password: 数据库用户密码 |- DriverManager类: 驱动管理器类…
一.批处理介绍      当需要成批插入或者更新记录时.可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率. JDBC的批量处理语句包括下面两个方法:      addBatch(String): 添加需要批量处理的SQL语句或是参数.         executeBatct(): 执行批量处理语句. 二.批处理的使用 1.使用事务没有批处理 @Test public void testBatch(){ Connection con…
批处理 很多时候,需要批量执行sql语句! 需求:批量保存信息! 设计: AdminDao Public  void  save(List<Admin list){    // 目前用这种方式 // 循环 // 保存  (批量保存) } Public  void  save(Admin  admin ){ // 循环 // 保存 } 技术: |-- Statement 批处理相关方法 void addBatch(String sql)     添加批处理 void clearBatch()   …
之前的代码中,以下代码很多时候并不是固定的: private static String url = "jdbc:mysql://localhost:3306/day1029?useUnicode=true&characterEncoding=GB2312"; // 数据库的用户名和密码 private static String user = "root"; private static String password = "root"…
1.导jar包 四大参数: 1.加载驱动类:Class.forName("com.mysql.jdbc.Driver"); 2.url:jdbc:mysql://localhost:3306/数据库名 //jdbc:厂商名://子协议/数据库名 #mysql #url=jdbc:mysql://localhost:3306/mydb? useUnicode=true&characterEncoding=utf8 &useServerPrepStmts=true &…
回顾下之前jdbc的开发步骤: 1:建项目,引入数据库驱动包 2:加载驱动 Class.forName(..); 3:获取连接对象 4:创建执行sql语句的stmt对象;  写sql 5:执行sql a) 更新    delete/insert/update !:executeUpdate(); b) 查询    select !:executeQuery(); 6:关闭/异常 之前有说过,Statement接口和PreparedStatement接口的区别,其中的一个就是: PreparedS…
CallableStatement执行存储过程(也是预编译语言) 首先在sql中执行以下带有输入参数的代码: DELIMITER $ CREATE PROCEDURE pro_findById(IN sid INT) BEGIN SELECT * FROM person WHERE id = sid; END $ 那么,这条语句的存储过程代码就是 CALL pro_findById (?); 使用CallableStatement来执行: /** 带有输入参数的存储语言 sql中先运行 DELI…
Statement 和 PreparedStatement 的区别: 1)语句不同 PreparedStatement需要预编译以及需要参数 2)由于PreparedStatement有缓存区,所以效率更高 3)由于PreparedStatement有缓存区,所以更安全,防止了注入(1=1) PreparedStatement接口(推荐使用): 代码1: /** * 添加数据语句 **/ private static void Intinsert() { Connection conn = nu…
  之前操作数据 1)通过mysql的客户端工具,登录数据库服务器  (mysql -u root -p 密码) 2)编写sql语句 3)发送sql语句到数据库服务器执行 什么是jdbc? 使用java代码(程序)发送sql语句的技术,就是jdbc技术!!!! 使用jdbc发送sql前提 登录数据库服务器(连接数据库服务器) 数据库的IP地址 端口 数据库用户名 密码 代码: public class MySql_Demo1 { //创建一个url private static String u…
public Integer insertObjects(final Goods entity) { // 定义sql语句        final String sql1 = "insert into goods(name,price,cid)values(?,?,?)"; /*         * int num = jdbcTemplate.update(sql1, new Object[] { entity.getName(),         * entity.getPric…
1. 事务 基本概念: 事务使指一组最小逻辑操作单元,里面有多个操作组成. 组成事务的每一部分必须要同时提交成功,如果有一个操作失败,整个操作就回滚. 事务ACID特性: l 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. l 一致性(Consistency 事务必须使数据库从一个一致性状态变换到另外一个一致性状态. l 隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务…
//利用反射机制 和 从request获取所有参数的形式来构建查询对象 CustomerChooseSearchParma searchObject = new CustomerChooseSearchParma(); //不是数组类型的参数的list List<String> singleList = getSingleStringFieldList(); Map map = request.getParameterMap(); Set keSet = map.entrySet(); for…
出错代码如下: //1.create HTablePool HTablePool hp=new HTablePool(con, 1000); //2.get HTable from HTablepool HTable ht=(HTable)hp.getTable(tName); 出错原因,主要是版本更新了,所以旧的调用方式会报错:如今应用的api版本中pool.getTable返回的类型是HTableInterface ,无法强转为HTable 解决方法:跳过转换为中间变量,直接调用 //ht.…
1.在连接数据库的时候请注意, 最使用连接连接数据库的时候,必须在后面追加上编码的设置:useUnicode=true&characterEncoding=UTF-8,如下图所示. 参考连接:https://blog.csdn.net/qq_27760433/article/details/76121783…
在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作. 首先,使用Java JDBC基本的API批量插入数据到数据库中. Simple Batch - 简单批处理    我把它叫做简单批处理.要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能. 想想一下下面的代码: Bad…
在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作. 首先,使用Java JDBC基本的API批量插入数据到数据库中. Simple Batch - 简单批处理    我把它叫做简单批处理.要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能. 想想一下下面的代码: Bad…
DBCP.C3P0.DBUtils的jar包和配置文件(百度云盘):点我下载 JDBC JDBC(Java 数据库连接,Java Database Connectify)是标准的Java访问数据库的API.JDBC定义了数据库的连接,SQL语句的执行以及处理数据库返回的结果等. Java应用程序使用JDBC API与数据库连接而实际的动作则是由JDBC驱动程序管理器(JDBC Driver Manager)通过JDBC驱动程序(JDBC Driver)与数据库系统进行连接.所以其实真正提供存取数…
先上官方示例代码:官方示例 Java代码: // 批量插入数据 public void InsertBatch() { try { // 设置集群名称 Settings settings = Settings.builder().put("cluster.name", "my-es-analyze").build(); // 创建client TransportClient client = new PreBuiltTransportClient(settings)…
错误情况如题,出现这个错误的原因是这样的: 在数据库中,插入一个字符串数据的时候是需要用单引号引起来的. 而下面的代码,注意看: sta.executeUpdate("INSERT INTO record(`id_record`, `date_record`, `record`, `money_record`) VALUE ("+id+","+date+","+record+","+money+")");…
1.创建数据库Person CREATE TABLE Person( id number, name nvarchar2() , age number , sex nvarchar2() , password nvarchar2() ) 2.在数据库建立一个type,对应JAVA端要传入的对象结构: CREATE OR REPLACE TYPE BUT_UKBNOV_CTC_ORDER_REC1 AS OBJECT ( id number, name nvarchar2(200) , age n…
插入单条数据, 获取插入数据的id. $model->attributes['id']; new  model 添加数据的时候, 需要注意, 如果是想要循环添加多条数据的情况, new model 的操作要写在循环体里, 不小心写在循环体外面, 那么最终插入数据库中的数据将是遍历的最后一条数据. 把new model 操作写在循环体内才能成功插入遍历的全部数据.…
数据表设计时,一般都会有一个主键(Key)(自己指定),有时也可以使用联合主键: 有许多数据库提供了隐藏列为表中的每行记录分配一个唯一键值(如:rowid): 当我们没有指定哪一列作为主键key时,数据表可能会含有一个隐含的主键(或者叫唯一键值): 当我们向数据表中插入数据时,对于每一条记录,都会有一个主键与之对应,那么我们如何在向数据表中插入数据时,获取到数据库自动分配的主键呢? 如下给出示例: 上面使用到了PreparedStatement来执行SQL插入,关于PreparedStateme…
很多时候,我们都需要在插入一条数据后回过头来获取到这条数据在数据表中的自增主键,便于后续操作.针对这个问题,有两种解决方案: (1)先插入,后查询.我们可以先插入一条数据,然后根据插入的数据的各个字段值,再次访问数据库,从数据库中将刚刚插入的数据查询出来.当然,这种方法是很笨的,不提倡使用. (2)MyBatis为我们提供了一种在插入数据后获取自增主键的方式,通过这种方式,我们可以在插入一条数据之后直接从插入的POJO对象中取出id即可.这种方式简单且效率高.节省代码量,因此提倡使用. Mapp…
相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数) 来执行它.存储过程是数据库中 的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 一个存储过程是一个可编程的函数,它在数据…