1. mysql jdbc
sql语言分类:
- 数据定义语言(DDL):create,alert,drop
- 数据操作语言(DML):insert,update,delete等语句
- 数据查询语言(DQL):select 等
- 数据控制语言(DCL):grant,revoke,commit,rollback等。
sql基本操作:
创建表: create table xx(id varchar(255) primarily key,name varchar(255));
删除表:drop table xx;
插入数据:insert into xx values(‘01’, ‘jack’);
修改表:alert table xx add yyy varchar(255)
2. 建立mysql连接
1.sql 连接都需要数据库驱动mysql中的就是:mysql-connector-java-5.0.4-bin.jar;
在java中使用mysql数据库时都需要添加该jar包到path中;
(ps:mysql 5.0以上才支持存储过程和触发器)
2.driver加载
// 通过反射
String clazz = "com.mysql.jdbc.Driver";
// 装载驱动类
Class.forName(clazz);
3.connection的参数
String url = ""
+ "jdbc:mysql://localhost:3306/myjdbc?"
+ "user=root&"
+ "password=xxxxxx";
connection = DriverManager.getConnection(url);
- jdbc:mysql://localhost:3306 使用的是本地数据库的3306端口;
- myjdbc 使用的具体数据库;
- user=root 数据库用户;
- password=xxxxxx 数据用户密码;
其他属性
- autoReconnect 连接失败后重新连接(boolean)
- maxRows 查询结果的最大行数
- userUnicode 使用unicode编码(boolean 一般都是utf-8,配合下一个属性使用)
- characterEncoding 使用的编码(utf-8)
- maxReconnect 最大重新连接数
示例
public class SimpleJDBCConnection {
public static Connection getConnection(){
java.sql.Connection connection = null;
String clazz = "com.mysql.jdbc.Driver";
String url = ""
+ "jdbc:mysql://localhost:3306/myjdbc?"
+ "user=root&"
+ "password=xxxx";
try {
// 装载数据库驱动
Class.forName(clazz);
connection = DriverManager.getConnection(url);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return connection;
}
}
3. 实体对象
实体对象主要用于对应数据库的表的数据
- 使用简单的person(PS:写好字段后再eclipse中使用”Alt+Shift+S“出来的很多方便的快捷代码生成,比如常用的getter和setter,toString()方法)
public class Person {
public String pid;
public String pname;
public int psex;
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public int getPsex() {
return psex;
}
public void setPsex(int psex) {
this.psex = psex;
}
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", psex=" + psex
+ "]";
}
}
4. 测试类
在测试类中只使用简单的陈述性语句statement来查询
public class TestJDBC {
public static void main(String[] args) {
try {
// 获取connection 连接
Connection connection = SimpleJDBCConnection.getConnection();
// 查询语句
Statement statement = connection.createStatement();
// 建立sql对象执行查询
ResultSet resultSet = statement.executeQuery("SELECT * FROM person;");
// 存储对象
Collection<Person> persons = new ArrayList<Person>();
// 循环取值
Person person = new Person();
while(resultSet.next()){
person.setPid(resultSet.getString("pid"));
person.setPname(resultSet.getString("pname"));
person.setPsex(resultSet.getInt("psex"));
persons.add(person);
}
// 关闭连接
statement.close();
System.out.println("查询结果:\n" + persons);
} catch (Exception e) {
System.out.println("数据库错误LOG:");
e.printStackTrace();
}
}
}
- resultset 结果集
是查询返回结果,包含多行数据,主要的操作方法是对getString、getInt、getLong、getObject等 - excute
同时发布在:shaoxiaobin