jdbcpreparestatement执行多条语句_你知道JDBC嘛?

更新时间:2023-05-29 05:54:47 阅读: 评论:0

jdbcpreparestatement执⾏多条语句_你知道JDBC嘛?Java数据库连接,提供了⼀种与平台⽆关的⽤于执⾏SQL语句的标准javaAPI,可以⽅便实现多种关系型数据库的统⼀操作。
JDBC驱动分类
· JDBC-ODBC桥驱动
ODBC是由微软提供的编程接⼝,JDBC也是模仿了ODBC的设计
· JDBC-本地驱动
直接使⽤各个数据库⽣产商提供的JDBC驱动程序,因为只能应⽤在特定的数据库上,会丧失程序的可移植性,不过性能很⾼。
· JDBC-⽹络驱动
将JDBC转换为与DBMS⽆关的⽹络协议,之后⼜被某个服务器转换为⼀种DBMS协议,所⽤的具体协议取决于提供者,最为灵活
·
本地协议纯JDBC驱动
将JDBC转换为DBMS所使⽤的⽹络协议。
· 主要操作类及接⼝
常⽤的类与接⼝就是DriverManager、Connection、Statement、Result、PreparedStatement
MySQl数据库
· 常⽤命令
创建数据库:create databa 数据库名称 ;
删除数据库:drop databa 数据库名称 ;
使⽤数据库:u 数据库名称 ;
创建数据库表:create table 表名( 字段名称1 字段类型[default 默认值] [约束], ...) ;
删除数据库表:drop table 表名 ;
查看表结构: desc 表名称 ;
查看全部数据库:show databas ;
查看⼀个数据库全部表: show tables ;
· SQL语法基础(Structured Query Language,结构查询语句)强⼤的数据库语⾔
DML-数据操作语⾔:检索或修改数据
DDL-数据定义语⾔:定义数据的结构,创建、修改、删除
DCL-数据控制语⾔:定义 数据库⽤户的权限
数据类型
整型数据
时间⽇期类
字符串类型
去黄插⼊数据:inrt into 表名称( 字段 ) values(值...);
删除数据:delete from 表名称 [删除条件] ; 若⽆条件则清空表,条件如 "where id =1"
更新数据:update 表名称 t 字段1 =值 1 ... [where 更新条件]
查询数据:lect {*|colum alias} from 表名 [where ];
模糊搜索:lect * from table where name like '%m%' or password like '%m%' ;搜索姓名或密码含有m 的⽤户加⼊limit 限制语句,limit 0,5 ; 限制从第1-5⾏的记录
JDBC操作步骤
· 连接数据库
配置MySQL数据库的驱动程序
下载 mysql-connector-java-5.1.39.zip,复制到jdk的所在处
public class jdbc {
public static final String DRIVER="sql.Driver";
public static void main(String[] args){
try{
System.out.println(Class.forName(DRIVER)) ;
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
}
}
若能输出Class名,则已配置好了
为什么调⽤Class.forName(),却没有newInstance();
Class.forName() 加载了指定类后,若类中有静态初始化器,JVM必然会执⾏该类的静态代码段,⽽JDBC的Driver类都是会有static代码块
DriverManager
getConnection(String url, String ur ,String password) :通过连接地址链接数据库,同时输⼊⽤户名和密码
url: jdbc:mysql:// ip地址 : 端⼝号/ 数据库名称
jdbc协议:JDBC URL中的协议总是jdbc
⼦协议:驱动程序名或数据库连接机制(这种机制可由⼀个或多个驱动程序⽀持)的名称,如mysql
⼦名称:⼀种标识数据库的⽅法,必须遵循"//主机名 : 端⼝/⼦协议" 的标准URL命名 约定
Connection接⼝
执⾏数据库的更新操作
Statement接⼝,通过Connection接⼝的createStatement()⽅法实例化,来操作数据
public static final String DRIVER="sql.Driver";
public static final String URL="jdbc:mysql://localhost:3306/newsql";
public static final String USERNAME="root";
public static void main(String[] args)throws Exception{
满有能力舞蹈视频Connection conn=null;
Statement statement=null;
乡村振兴申论String sql="inrt into newtable(name) values('ccw')";
try{
Class.forName(DRIVER); //加载驱动
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
Connection(URL,USERNAME,USERNAME);
ateStatement();
try{
青年志愿服务
statement.clo(); //先开后关闭,可以只关闭connection
conn.clo();
}catch(Exception e){
e.printStackTrace();
}
}
ResultSet接⼝
接受所查询的记录,并显⽰内容,开发中要限制查询数量
Statement接⼝的executeQuery() ⽅法,返回⼀个ResultSet对象
ResultSet uteQuery(sql);
()){
int Int("id"); //int Int(1);
String String("name"); //String String(2);
String String("x"); //....
System.out.println(id+name+x);
}
ResultSet的所有数据都可以通过getString()⽅法获得
PreparedStatement接⼝
上梁吉言
是Statement的⼦接⼝,属于预处理操作,与直接使⽤Statement不同的是,是先在数据表中准备好了⼀条SQL语句,但是此SQL语句的具体内容暂时不设置,⽽是之后在进⾏设置,即占住此位置等待⽤户设置
String sql="inrt into newtable(name,x) values(?,?)";
pStatement=conn.prepareStatement(sql); //实例化
pStatement.tString(1, name);
pStatement.tString(2, x);
注意:开发中不建议使⽤Statement来操作数据库,⽽是使⽤PreparedStatement,因为Statement是完整的SQL语句
处理⼤数据对象——必须使⽤PreparedStatement
CLOB:存储海量⽂字
男生超帅头像BLOB 存储⼆进制数据
写⼊⼤对象数据——IO流的模式
家庭餐厅
读取⼤对象数据
神经疼痛
处理CLOB
使⽤Clob操作⽐InputStream更加⽅便
String sql="lect name,note from bigtable where id =?";
pStatement=conn.prepareStatement(sql);
pStatement.tInt(1, 1);
ResultSet uteQuery();
()){
String String(1);
Clob Clob(2);
String SubString(1, (int)clob.length());
System.out.println(name+" "+note);
}
处理BLOB
创建表:create table urBlob(id int auto_increment primary key,name char(30), photo longblob) ;存储图⽚
String sql="inrt into urblob(name, photo) values(?,?)";
pStatement=conn.prepareStatement(sql);
File file=new File("d:"+File.parator+"my.jpg");
InputStream input=new FileInputStream(file);
pStatement.tString(1, name);
pStatement.tBinaryStream(2, input);
使⽤BLOB⽅法更加⽅便
()){
String String(1);
Blob Blob(2);
FileOutputStream output=new FileOutputStream(newFile("d:"+File.parator+"you.jpg"));
output.Bytes(1,(int)blob.length()));
output.clo();
}

本文发布于:2023-05-29 05:54:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/804602.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   数据   查询   操作   连接
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图