-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjdbctemplate-dao-implement.teplsql
153 lines (132 loc) · 5.26 KB
/
jdbctemplate-dao-implement.teplsql
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
<%@ template
name=jdbctemplate-dao-implement-template
%>
<%! col javaPojoGen.column_tt := javaPojoGen.get_all_columns ('${table_name}'); %>
<%! pk javaPojoGen.column_tt := javaPojoGen.get_pk_columns ('${table_name}', '${unque_key}'); %>
<%! c pls_integer; %>
<%! procedure sep (p_cont in pls_integer, p_delimiter in varchar2)
as
begin
if p_cont > 1
then
teplsql.p(p_delimiter);
end if;
end; %>
<%! function uf (p_in in varchar2) return varchar2
as
begin
return javaPojoGen.upper_first(p_in);
end;%>
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import javax.sql.DataSource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
<%= javaPojoGen.get_java_imports(pk) %>
\\n
/**
* Implementation of <code>${className}Dao</code> using Spring JdbcTemplate.
*
* @author osalvador
*
*/
@Repository
public class ${className}DaoImpl implements ${className}Dao {
/**
* class ${className}Dao
* Generated with: javaPojoGen
* Website: github.com/osalvador/OsalvadorCodeGenerators
* Created On: ${date}
*/
// Uncomment if you use a logging solution
// private static Logger logger = Logger.getLogger(${className}DaoImpl.class);
private static final String QUERY_ALL_COLUMNS =
"SELECT <%= lower(col(1).db_column_name) %>\n" +
<% c := col.last+2; for i in 2 .. col.last loop %>
" <%sep(c-i,',');%> <%= lower(col(i).db_column_name)%>\n" +
<% end loop; %>
"FROM ${table_name}";
private static final String WHERE_FOR_PKS =
" WHERE <%= lower(pk(1).db_column_name) %> = ? \n" +
<% for i in 2 .. pk.last loop %>
" AND <%= lower(col(i).db_column_name)%> = ? \n" +
<% end loop; %>
" ";
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
private class ItemMapper implements RowMapper<${className}> {
public ${className} mapRow(ResultSet rs, int rowNum) throws SQLException {
${className} item =new ${className}();
<% for i in 1 .. col.last loop %>
item.set<%=uf(col(i).COLUMN_NAME) %>( rs.get<%=col(i).data_type%>(<%= i %>));
<% end loop; %>
return item;
}
}
@Override
public List<${className}> findAll() {
return jdbcTemplate.query(QUERY_ALL_COLUMNS, new ItemMapper());
}
@Override
public ${className} find(<% c := pk.last+1; for i in 1 .. pk.last loop %>
<%= pk(i).data_type%> <%=pk(i).COLUMN_NAME %><%sep(c-i,',');%> <% end loop; %>) {
return jdbcTemplate.queryForObject(QUERY_ALL_COLUMNS + WHERE_FOR_PKS, new Object[]{<% c := pk.last+1; for i in 1 .. pk.last loop %> <%= pk(i).COLUMN_NAME %><% sep(c-i,','); end loop;%>}, new ItemMapper());
}
@Override
public ${className} find(${className} item) {
return jdbcTemplate.queryForObject(QUERY_ALL_COLUMNS + WHERE_FOR_PKS, new Object[]{
<% c := pk.last+1; for i in 1 .. pk.last loop %>
item.get<%=uf(pk(i).COLUMN_NAME) %>()<%sep(c-i,',');%>\\n
<% end loop; %>
}, new ItemMapper());
}
@Override
public long count() {
return jdbcTemplate.queryForObject("select count(*) from ${table_name}", long.class);
}
@Override
public void create(${className} item) {
String sqlInsert = "INSERT INTO ${table_name} \n" +
" ( \n" +
<% for i in 1 .. col.last loop %>
" <%sep(i,',');%> <%= lower(col(i).db_column_name)%> \n" +
<% end loop; %>
" )" +
" VALUES (<% c := col.last+1; for i in 1 .. col.last loop %> ?<%sep(c-i,',');%><% end loop; %> )";
jdbcTemplate.update(sqlInsert
<% c := col.last+2; for i in 1 .. col.last loop %>
<%sep(c-i,',');%> item.get<%=uf(col(i).COLUMN_NAME) %>()
<% end loop; %>
);
}
@Override
public void update(${className} item) {
String sqlUpdate = "UPDATE ${table_name} \n" +
" SET \n" +
<% for i in 1 .. col.last loop %>
" <%sep(i,',');%> <%= lower(col(i).db_column_name)%> = ? \n" +
<% end loop; %>
WHERE_FOR_PKS;
jdbcTemplate.update(sqlUpdate
<% for i in 1 .. col.last loop %>
, item.get<%=uf(col(i).COLUMN_NAME) %>()
<% end loop; %><% for i in 1 .. pk.last loop %>
, item.get<%=uf(pk(i).COLUMN_NAME) %>()
<% end loop; %>
);
}
@Override
public void delete(${className} item) {
jdbcTemplate.update("DELETE FROM ${table_name} " + WHERE_FOR_PKS,
<% c := pk.last+1; for i in 1 .. pk.last loop %>
item.get<%=uf(pk(i).COLUMN_NAME) %>()<%sep(c-i,',');%>\\n
<% end loop; %>
);
}
}