JDBC,JAVA连接数据库

JAVA连接数据库

1.新建项目,项目中新建文件夹,并将数据库包粘贴到新建文件夹中

2.选中数据库包,右键 build path -->add build path

3.加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

4.建立数据库连接对象

String url = "jdbc:mysql://localhost:3306/数据库名";

String user = "数据库连接账号";

String password = "数据库连接账号";

Connertion conn = DriverManager.getConnection(url,user,password);

5.创建sql语句对象

扫描二维码关注公众号,回复: 4302898 查看本文章

Statement st = conn.createStatement();

6.建立sql语句,并执行sql语句 返回值类型为结果集

String sql = "select * from 表名;";

ResultSet rs = st.ResultQuery(sql);

7.遍历结果集

while(rs.next()){

int id = rs.getInt(1); 获取第一条字段的内容

String name = rs.getString(2);获取第二条字段内容

字段是什么类型的数据,就使用什么类型进行接收

System.out.println(id+name); 打印获取到的数据

}

8.关闭数据库连接 遵循先开后关的原则

rs.close();

st.close();

conn.close();

API类库

DriverManager:管理jdbc驱动程序的基本服务

常用方法:

static getConnection(String url,String user,String password);

url:连接数据库的字符串

jdbc:mysql://localhost:3306/studentdb(数据库名)

user:mysql数据库的账号 :root

password:mysql数据库的密码 :root

返回值:Connection

Connection 接口:

常用方法:

createStatement():创建一个执行sql语句的对象:返回值:Statement

prepareStatement(String sql) 创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

返回值:PreparedStatement

Statement : 用于执行静态 SQL 语句并返回它所生成结果的对象。

常用方法:

executeQuery(String sql) :执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。

返回值对象:ResultSet

eg: select * from student;

executeUpdate(String sql) :执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句

PreparedStatement:表示预编译的sql对象。

执行动态的sql语句:

select * from student where id = ? and name = ?;

?:代表占位符

常用方法:

setInt(int parameterIndex, int x) 将指定参数设置为给定 Java int 值。

setInt(1,100); 把100的值给第一个问号

select * from student where id = 100;

setString(int parameterIndex,String x) :设置字符串的值

setString(2,"zhangsan");

select * from student where id = 100 and name = 'zhangsan';

executeQuery() :在此 PreparedStatement 对象中执行 SQL 查询: select

返回值:ResultSet 对象。

executeUpdate() :执行添加,修改,删除的sql句:insert,update,delete

ResultSet: 执行查询返回的结果集

常用方法:

next() : 是产生的结果集的下标移动一位。

getInt(int index); 获取整形的字段值

getString(int index);获取字符串字段的值

getDouble(int index);获取双精度类型的字段的字:钱

getDate(int index);获取日期类型的字段的值

getInt(String labelName); 通过字段名获取字段的值

int id = getInt("id");

getString(String lableName);

String name = getString("name");

getFloat(String lableName);

float score = getFloat("score");

getDouble(Sting lableName);

double money = getDouble("money");

getDate(String labelName);

Date date = getDate("date");

通用方法:

close(); 释放资源

释放原则:先创建的后关闭,后创建先关闭。

使用PrepareStatement语句对象

加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

创建数据库连接

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名","数据库连接账号","数据库连接密码");

创建SQL语句对象

PrepareStatement ps = conn.PrepareStatement("select * from 表名 where id = ? and name = ?");

为条件占位符赋值

ps.setInt(1,2); 把2赋给第一个占位符

ps.setString(2,"李四"); 把李四赋给第二个占位符

执行SQL语句,并接受返回的ResultSet 结果集

ResultSet rs = ps.executeQuery();

使产生的结果集下标移动一位

rs.next();

获取结果集中每个字段的值

int id = rs.getInt("id");

String name = rs.getString("name");

打印获取到的字段值

System.out.println(id + name);

关闭数据库连接,遵循先开后关的原则

rs.close();

ps.close();

conn.close();

Class类

获取class对象的方法

1.通过调用从Objcet类继承过来的getclass方法,获取

TestClass tc = new TestClass();

Class<? extends TestClass> c1 = tc.getClass();

2.通过.class的方式获得class对象

Class<?> c2 = TestClass.class;

基本数据类型也可以通过.class的方式获得

Class<?> c3 = int.class;

Class<?> c4 = boolean.class;

Class<?> c5 = int[].class;

3.通过Class.forname(String className)方法获取一个类对应的class对象

Class<?> c6 = Class.forName("com.mysql.jdbc.Driver");

4.通过包装类的TYPE属性获得对应的数据类型class对象

Class<Integer> t = Integer.TYPE;

通过某一个类的Class对象获取对应类的构造方法

Class<?> c = String.class;

获取类的全类名

String name = c.getName();

System.out.println("全类名:"+name);

System.out.println();

获取这个类的public类型的属性,返回的是数组类型,打印需要遍历

Field[] fields = c.getFields();

for(Field f : fields){

System.out.println("公开的属性:"+f);

}

System.out.println();

获取这个类的所有属性,返回时数组,打印需遍历

Field[] de = c.getDeclaredFields();

for(Field f : de){

System.out.println("全部属性:"+f);

}

System.out.println();

获取这个类的公开方法,返回数组,打印需遍历

Method[] methods = c.getMethods();

for(Method m : methods){

System.out.println("公开方法:"+m);

}

System.out.println();

获取这个类的所有方法,返回数组,打印需遍历

Method[] declaredMethods = c.getDeclaredMethods();

for(Method d : declaredMethods){

System.out.println("所有方法:"+d);

}

System.out.println();

获取这个类的公开构造器,返回数组,打印需遍历

Constructor<?>[] constructors = c.getConstructors();

for(Constructor co : constructors){

System.out.println("公开的构造方法:"+co);

}

System.out.println();

获取这个类的所有构造器,返回数组,打印需遍历

Constructor<?>[] declaredConstructors = c.getDeclaredConstructors();

for(Constructor co : declaredConstructors){

System.out.println("所有构造方法:"+co);

}

猜你喜欢

转载自blog.csdn.net/weixin_43087631/article/details/84645863