sql >> データベース >  >> RDS >> Mysql

application.propertiesファイルを使用したSpringJDBC

    まず、application.propertiesなしでそれを行う方法を学ぶことをお勧めします ファイル。私たちは21世紀に住んでおり、Spring-boot jdbc dataSourceを宣言できます @Beanとして MySpringBootApplicationのデータベースクレデンシャルを使用 クラス。 こちら でその方法をご覧ください

    次に、jdbcTemplateを使用しないことをお勧めします 時間がない限り。私の言葉に印を付けてください。もしデバッグが起こったら、それは悪夢でしょう。したがって、スプリング構成を追加して純粋なJDBCを使用してみてください。

    方法の例:

    StudentDAOインターフェース

        public interface StundentDAO {
    
        void addStudent(String name, String surname);
    
        List<Student> findStudents();
    }
    

    JdbcStudentDAOの実装

        @Repository
        public class JdbcStudentDAO implements StudentDAO {
    
        //[IMPORTANT] import javax.sql.datasource package (?)
        private Datasource datasource;
    
        @Autowire
        public JdbcStudentDAO(Datasource datasource) {
            this.datasource = datasource;
        }
    
        @Override
        public void addStudent(String name, String surname) {
            String query = "INSERT INTO Students VALUES (?,?)";
            try(Connection connection = datasource.getConnection()) {
                try(PreparedStatement statement = connection.preparedStatement(query)) {
                    statement.setString(1, name);
                    statement.setString(2, surname);
                    statement.executeUpdate();
                }
            } catch(SQLException e) {
                e.printStacktrace();
            }
        }
    
        @Override
        public List<Student> findStudents() {
            String query = "SELECT * FROM Students";
            Student student = null; //will be used soon as DTO
            List<Student> listOfStudents = null;
            try(Connection connection = datasource.getConnection()) {
                try(PreparedStatement statement = connection.preparedStatement(query)) {
                    try(ResultSet rs = statement.executeQuery()) {
                        listOfStudents = new ArrayList<>();
                        while(rs.next()) {
                            student = new Student(
                                rs.getString("name");
                                rs.getString("surname");
                            );
                        }
                        listOfStudents.add(student);
                    }
                }
            } catch(SQLException e) {
                e.printStacktrace();
            }
            return listOfStudents;
        }
    } 
    

    dataSourceに注意してください データベース接続のみを行います。(リンクを参照)

    頑張ってください!




    1. Python:MySQLdbとライブラリがロードされていません:libmysqlclient.16.dylib

    2. Linq to Entities Group By(OUTER APPLY)oracle11.2.0.3.0はapplyをサポートしていません

    3. MySQL-挿入後、他の値を満たす別のテーブルの列を更新するトリガー

    4. JPAネイティブクエリは単一のオブジェクトを取得します