JDBC数据库的增删改查

来源:ChuckMa 发布时间:2018-11-21 14:15:04 阅读量:1213

这是数据库增删改查的Java代码,随即写下来!Java部分的代码全部在这里了


第一个实体类Emp


public class Emp {

    private String empName;

    private int empId;


    public String getEmpName() {

        return empName;

    }


    public void setEmpName(String empName) {

        this.empName = empName;

    }


    public int getEmpId() {

        return empId;

    }


    public void setEmpId(int empId) {

        this.empId = empId;

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

第二个类BaseDao(公共部分),代码如下:


public class BaseDao {


    /**

     * 

     * @param conn 连接对象

     * @param sql   sql 语句

     * @param param  此数组,装的是sql语句中的问题的替代数据

     * @throws Exception

     */

    public void exeSql(Connection conn, String sql, Object[] param)

            throws Exception {


        PreparedStatement pst = null;


        pst = conn.prepareStatement(sql);


        if (param != null) {

            for (int i = 0; i < param.length; i++) {

                pst.setObject(i + 1, param[i]);

            }

        }

        pst.executeUpdate();

    }


    /**

     * 得到查询结果集

     * @param conn

     * @param sql

     * @param param

     * @return  返回结果集rs

     * @throws Exception

     */

    public ResultSet getRs(Connection conn, String sql, Object[] param)

            throws Exception {


        PreparedStatement pst = null;


        pst = conn.prepareStatement(sql);


        ResultSet rs = null;


        if (param != null) {

            for (int i = 0; i < param.length; i++) {

                pst.setObject(i + 1, param[i]);

            }

        }

        rs = pst.executeQuery();


        return rs;

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

第三个类EmpDao ,代码如下:


public class EmpDao extends BaseDao{


    /**

     * 建表

     * @param conn

     * @throws Exception

     */

    public void createTable(Connection conn)throws Exception{

        String sql = "create table emp (empId tinyint primary key,empName varchar(20))";

        Object [] param = null;

        this.exeSql(conn,sql,param);//???

    }


    /**

     * 数据添加

     * @param conn

     * @param emp

     * @throws Exception

     */

    public void addEmp(Connection conn,Emp emp) throws Exception{


        String sql = "insert into emp(empId,empName) values(?,?)";


        Object [] param = {emp.getEmpId(),emp.getEmpName()};


        this.exeSql(conn,sql,param);

    }

    /**

     * 数据删除

     * @param conn

     * @param empId

     * @throws Exception

     */

    public void deleteEmpById(Connection conn,int empId)throws Exception{

        String sql= "delete from emp where empId=?";


        Object [] param = {empId};


        this.exeSql(conn,sql,param);

    }

    /**

     * 数据更新

     * @param conn

     * @param emp

     * @throws Exception

     */

    public void updateEmp(Connection conn,Emp emp)throws Exception{

        String sql ="update emp set empName=? where empId=?";


        Object []param ={emp.getEmpName(),emp.getEmpId()};


        this.exeSql(conn,sql,param);

    }

    /**

     * 数据查询

     * @param conn

     * @return

     * @throws Exception

     */

    public ArrayList<Emp> findAllEmps(Connection conn)throws Exception{

        String sql ="select *from emp";


        Object [] param = null;


        ResultSet rs = this.getRs(conn,sql,param);


        ArrayList<Emp> empList = new ArrayList<Emp>();


        while(rs.next()){


            Emp emp = new Emp();


            emp.setEmpId(rs.getInt("empId"));

            emp.setEmpName(rs.getString("empName"));


            empList.add(emp);

        }


        return empList;

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

第四个类 工具类DbHelper ,代码如下:


/**

 * 连接和关闭

 * @author Administrator

 * static关键字,标识为可以用类名直接调用类的属性或方法。

 */

public class DbHelper {

    public static Connection getConn()throws Exception{

        Connection conn = null;


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


        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","1234567");


        return conn;

    }

    public static void closeConn(Connection conn)throws Exception{

        if(conn!=null){

            conn.close();

        }

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

第五个类 Service 服务层,代码如下:


public class EmpService {


    /**

     * 建表服务

     */

    public void create() {

        Connection conn = null;


        try {

            conn = DbHelper.getConn();

            conn.setAutoCommit(false);  //设置手动提交


            EmpDao empDao = new EmpDao();


            empDao.createTable(conn); //???


            conn.commit();            //提交


            DbHelper.closeConn(conn);


            System.out.println("表创建成功");

        } catch (Exception e) {

            e.printStackTrace();


            try {

                conn.rollback();

            } catch (SQLException e1) {

                e1.printStackTrace();

            }

        }

    }

    /**

     * 添加

     * @param emp

     */

    public void add(Emp emp) {

        Connection conn = null;


        try {

            conn = DbHelper.getConn();

            conn.setAutoCommit(false);


            EmpDao empDao = new EmpDao();


            empDao.addEmp(conn, emp);


            conn.commit();


            DbHelper.closeConn(conn);


            System.out.println("数据添加成功");

        } catch (Exception e) {

            e.printStackTrace();


            try {

                conn.rollback();

            } catch (SQLException e1) {

                e1.printStackTrace();

            }

        }


    }

    /**

     * 删除

     * @param empId

     */

    public void delete(int empId) {

        Connection conn = null;


        try {

            conn = DbHelper.getConn();


            conn.setAutoCommit(false);


            EmpDao empDao = new EmpDao();


            empDao.deleteEmpById(conn, empId);


            conn.commit();

            DbHelper.closeConn(conn);

            System.out.println("数据删除成功");

        } catch (Exception e) {

            e.printStackTrace();


            try {

                conn.rollback();

            } catch (SQLException e1) {

                e1.printStackTrace();

            }

        }

    }

    /**

     * 修改

     * @param emp

     */

    public void update(Emp emp) {

        Connection conn = null;


        try {

            conn = DbHelper.getConn();

            conn.setAutoCommit(false);


            EmpDao empDao = new EmpDao();


            empDao.updateEmp(conn, emp);


            conn.commit();


            DbHelper.closeConn(conn);


            System.out.println("数据更新成功");

        } catch (Exception e) {

            e.printStackTrace();


            try {

                conn.rollback();

            } catch (SQLException e1) {

                e1.printStackTrace();

            }

        }

    }

    /**

     * 查询

     * @return

     */

    public ArrayList<Emp> findAllEmps() {


        Connection conn = null;


        ArrayList<Emp> empList = null;


        try {

            conn = DbHelper.getConn();

            conn.setAutoCommit(false);

            EmpDao empDao = new EmpDao();


            empList = empDao.findAllEmps(conn);


            conn.commit();


            DbHelper.closeConn(conn);


            System.out.println("数据查询完毕!");

        } catch (Exception e) {

            e.printStackTrace();

            try {

                conn.rollback();

            } catch (SQLException e1) {

                e1.printStackTrace();

            }

        }


        return empList;

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

第六个类 测试类 Test ,代码如下:


public class EmpTest {

    public static void main(String[] args) {

        Emp emp = new Emp();


        emp.setEmpId(1);

        emp.setEmpName("阿童木");


        EmpService es = new EmpService();


        // es.create(); //???

        // es.add(emp);


        // es.delete(66);

        es.update(emp);


        ArrayList<Emp> empList = es.findAllEmps();

        for (int i = 0; i < empList.size(); i++) {

            Emp emp2 = empList.get(i);


            System.out.println("姓名:" + emp2.getEmpName() + " 序号:"

                    + emp2.getEmpId());

        }

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

本次使用的数据库是mysql数据库!不足之处希望各位指出,我们共同学习,总结,进步!

--------------------- 



标签: 数据库
分享:
评论:
你还没有登录,请先