通过java连接mysql数据库

11 篇文章 0 订阅

package it.cast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

import com.mysql.jdbc.Driver;

public class jdbctest {
@Test
public void demo1() throws ClassNotFoundException{

    try {
        //DriverManager.registerDriver(new Driver());
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/day13", "root", "1367356");
        Statement statement=conn.createStatement();
        ResultSet rs=statement.executeQuery("select * from users");
        while(rs.next()){
            System.out.println(rs.getString("name"));
            System.out.println(rs.getString("email"));
        }
        conn.close();
        rs.close();
        statement.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

1,driverManager 驱动管理器
DriverManager.registerDriver(new Driver());
DriverManager.getConnection(“jdbc:mysql://localhost:3306/day13”(url标示数据库位置,可以通过url标示驱动), “root”, “password”);
在实际开发中我们不会直接写 DriverManager.registerDriver(new Driver());
只需要编写Class.forName(“com.mysql.jdbc.Driver”);
原因1:如果直接写DriverManager.registerDriver(new Driver());会导致驱动加载两次,因为mysql默认加载了Driver,
原因2:如果使用了new Driver,会使java程序会依赖具体的API,因为加载new driver(),需要引具体的包。
在JDBC编程时,不需要import具体数据库驱动,都import,java.sql,javax.sql;
2数据库URL
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/day13”, “root”, “1367356”);
连接任何数据库,需要些jdbcurl
MYSQL URL jdbc:mysql://localhost:3306/day13(day13数据库名称)
Oracle写法:jdbc:oracle:thin:@localhost:1521:sid(sid数据库名称)

编写jdbc程序时,数据库程序不同:user,driverclass,url,lpassword不同
JDBC连接MySQL简写,如果使用localhost:3306,可以省略, jdbc:mysql:///day13
**常用属性:**useUnicode=true&charaterEncoding=UTF-8
jdbc:mysql:///day13?useUnicode-true&charaterEncoding-UTF-8参数拼接在URL后面,用来指定客户端与服务器连接使用的字符集。
当客户端的编码与服务器端编码不同,通过参数设置编码
例如:客户端GBK,服务器utf-8——useUnicode-true&charaterEncoding=gbk(客户端字符集)
3,connection接口—————jdbc 连接表示接口
connection接口一个对象,代表一个数据库连接
作用两点:
1,获得操作数据库statement对象
createstment()—statement 获得普通操作状态对象
preparedstatement(string sql)—preparedstatement(是statement子接口)预编译状态对象
preparecall(String sql)—callablestatement(preparedstatement 子接口)操作数据库内部的存储过程
statement对象可以向数据库发送sql语句,获得resultset结果集
2,进行事务控制
setautocommit(boolean);开启一个事务
commit();提交一个事务
rollback();回滚一个事务
4:Statement 接口—代表一个操作状态
作用:操作数据库sql语句,调用存储过程
executequery(string sql)用于向数据库发送查询语句。select语句返回resultset结果集
executeupdate(string sql)用于向数据库发insert,update,delete语句, 返回受印象的行数,返回int类型。
execute(string sql)用于向数据库发送任何指令,返回值boolean型
如果sql结果是resultSET返回true,否则返回false
addbatch(string sql);把多条sql语句放到一个批处理中
executebatch();向数据库发送一批sql语句执行。

5:可滚动结果集—创建statement时设置结果集的可滚动性
createstatement(int resultsettype,int resultsetconcurrency)
resultsettype–结果集类型,它是
resultset.type_forward_only,只支持next
resultset.type_scoll_insensitive,无法看到更改后的数据
resultset.type_scoll_sensitive,看到更改后的数据
resultsetconcurrency-并发类型;它是
resultset.concur_read_only 只读
和resultset.concur_updateable可修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值