4.java,mysql jdbc简单实现(1)

来源:互联网 发布:淘宝客开通要钱吗 编辑:程序博客网 时间:2024/05/13 14:24

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
0 0